在NCache Manager中,对于每个Cache,你必须在通用的情况下分别定义压缩类型是否有任何方法可以一次性为Cache Compact提供所有类
答案 0 :(得分:4)
您应该从Runtime.dll实现Ncache IGenericTypeProvider接口 class GenericTypeProvider1:IGenericTypeProvider { #region IGenericTypeProvider成员
public Type[] GetGenericTypes()
{
ArrayList aryList = new ArrayList();
#region Classes that hold generic types inside or inherited from the generic types...
aryList.Add(new PrimitiveTypes());
aryList.Add(new ComplexTypes());
aryList.Add(new UnsignedTypes());
aryList.Add(new GenericHolder());
aryList.Add(new GenericChild());
#endregion
#region Custom Generic objects that take only one type arguemt ...
aryList.Add(new GenericClass<string>());
aryList.Add(new GenericClass<bool>());
aryList.Add(new GenericClass<double>());
aryList.Add(new GenericClass<byte[]>());
aryList.Add(new GenericClass<DateTime>());
aryList.Add(new GenericClass<TimeSpan>());
aryList.Add(new GenericClass<Guid>());
aryList.Add(new GenericClass<Product>());
aryList.Add(new GenericClass<AllTypes>());
aryList.Add(new GenericClass<NullableObject>());
aryList.Add(new GenericClass<List<AllTypes>>());
aryList.Add(new GenericClass<List<AllDataTypes>>());
aryList.Add(new GenericClass<List<NullableObject>>());
aryList.Add(new GenericClass<Dictionary<string, NullableObject>>());
aryList.Add(new GenericClass<List<GenericList<NullableObject>>>());
aryList.Add(new GenericClass<List<Dictionary<string, NullableObject>>>());
#endregion
//--- Populate the type array with the types of the above given objects ...
Type[] types = new Type[aryList.Count];
for (int i = 0; i < types.Length; i++)
types[i] = aryList[i].GetType();
return types;
}