webForumDet fria alternativet

Cache

7 svar · 253 visningar · startad av icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#1

Hur använder jag Cache classen i C#??
Jag har försökt att göra följande

[red]
using System;
using System.Net;
using System.IO;
using System.Web;
using System.Text.RegularExpressions;
using System.Collections;
using System.Text;
using System.Web.Caching;
...
...
...
if(Cache["fetchedstream"] == null)
{
    _getmainstream = _fetchstream(@"http://www.webforum.nu");
    Cache("fetchedstream") = _getmainstream;
}
else
{
    _getmainstream = Cache("fetchedstream");
}
[/red]

Men jag får bara
System.Web.Caching.Cache' denotes a 'class' where a 'variable' was expected eller 'System.Web.Caching.Cache' denotes a 'class' which is not valid in the given context
på varje plats som jag använder Cache

hur ska jag göra??

mvh icaaq

juventus1Medlem sedan dec. 2000399 inlägg
#2

Det ser lite konstigt ut. Prova något i den här stilen:

Cache c = new Cache();
c.Add("fetchedstream", massa grejer här); // Kolla doc:en på denna metod
// ett ex. Cache.Add("timestamp", timeStamp, null, d, t, CacheItemPriority.High, onRemove);

if (c.Get("fetchedstream") == null)
...
else
...
icaaqMedlem sedan okt. 20005 273 inlägg
#3

Nu har jag denna

[red]
Cache c = new Cache();
[b]if(c.Get("fetchedstream") == null)[/b]
{
	_getmainstream = _fetchstream(@"http://www.essring.net/webnews/news.lasso");
	c.Insert("fetchedstream", _getmainstream.ToString());
}
else
{
	_getmainstream = c.Get("fetchedstream").ToString();
}
[/red]

men jag få System.NullReferenceException: Object reference not set to an instance of an object. påden feta :OO

mvh icaaq

juventus1Medlem sedan dec. 2000399 inlägg
#4

Tror jag lurade dig lite förut. Hittade iaf ett exempel som visar hur man visar allt i ASP.NET:s cache

void ShowCachedItems()
{
    // Declare variables.
    string strCacheContents;
    string strName;

    // Display all the items stored in the ASP.NET cache.
    strCacheContents = "<b>The ASP.NET application cache contains:</b><br/>";
    foreach(DictionaryEntry objItem in Cache)
    {
        strName = objItem.Key.ToString();
        if(strName.Substring(0, 7) != "System.")
        {
            strCacheContents = strName + " + " + Cache[strName].ToString() + "<br/>";
       Response.Write(strCacheContents);
        }
    }
   divCacheContents.InnerHtml = strCacheContents;
}

red: Hittade några länkar som kanske är nyttiga http://www.dotnet247.com/247reference/a.aspx?u=http://www.c-sharpcorner.com/Code/2002/April/DataCachingInASPNetJG002.asp och http://www.aspalliance.com/aldotnet/examples/cacheviewer.aspx

icaaqMedlem sedan okt. 20005 273 inlägg
#5

Men första gången man kommer in på sidan så kan det ju inte ligga nått i cachen....eller då måste jag kolla om det finns nått i den om det gör det sä lägger jag ju inte i nått annars fyller jag den...

eller tänker jag helt fel nu?

mvh icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#6

Då tänkte jag så här

[red]
string find = "fetchedstream";
bool there = false;
foreach(DictionaryEntry objItem in [b]Cache[/b])
{
	if(Cache[find] == true)
	{
		there = true;
	}
}
[/red]

men då blir det System.Web.Caching.Cache' denotes a 'class' where a 'variable' was expected

Varför förstår jag inte......men nån kanske kan hjälpa mig?

renholmMedlem sedan apr. 20012 266 inlägg
#7

Context.Cache.Insert("namn", object)

Funkar bra, sedan kan du lägga till olika parametrar för hu länge cáchen är gilltig.

icaaqMedlem sedan okt. 20005 273 inlägg
#8

För att informera er så ska man använda HttpRuntime.Cache.
Jag gjorde så här:

[red]
if(HttpRuntime.Cache["fetchedstream"] == null)
			{
				_getmainstream = _fetchstream(@"http://www.essring.net/webnews/news.lasso");
				HttpRuntime.Cache.Insert("fetchedstream", _getmainstream, null, DateTime.Now.AddMinutes(30), TimeSpan.Zero);
			}
			else
			{
				_getmainstream = HttpRuntime.Cache["fetchedstream"].ToString();
			}
[/red]

mvh icaaq

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)