2

在每个缓存的 NCache 管理器中,您必须在泛型的情况下单独定义紧凑类型有没有办法一次将所有类提供给 Cache Compact

4

1 回答 1

4

你应该从 Runtime.dll 类 GenericTypeProvider1 实现 Ncache IGenericTypeProvider 接口: IGenericTypeProvider { #region IGenericTypeProvider Members

    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;
    }
于 2013-10-11T12:42:43.237 回答