NCache通用类型处理程序实现

时间:2013-10-11 12:31:50

标签: .net ncache

在NCache Manager中,对于每个Cache,你必须在通用的情况下分别定义压缩类型是否有任何方法可以一次性为Cache Compact提供所有类

1 个答案:

答案 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;
    }