using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Caching;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
MemoryCache.Default.Add("C1", new Customer { Name = "C1" }, DateTime.Now.AddDays(1));
MemoryCache.Default.Add("C2", new Customer { Name = "C2" }, DateTime.Now.AddDays(1));
MemoryCache.Default.Add("C3", new Customer { Name = "C3" }, DateTime.Now.AddDays(1));
Console.WriteLine("Total Cached Objects: {0}", MemoryCache.Default.GetCount());
Console.WriteLine("Total cached objects of type Customer: {0}", MemoryCache.Default.OfType<Customer>().Count());
Console.Read();
}
}
public class Customer
{
public string Name { get; set; }
}
}
Я добавляю 3 объекта типа Customer в MemoryCache и затем пытаюсь отфильтровать MemoryCache, чтобы получить только те объекты, которые имеют тип Customer.
После выполнения приведенного выше кода я ожидал, что «Всего кэшированных объектов типа Customer» будет равно 3, но он вернет 0.
Кто-нибудь может указать мне, что здесь не так?