Реализация универсального обработчика типов NCache

В NCache Manager для каждого Cache вы должны определять компактный тип отдельно в случае универсального. Есть ли способ предоставить все классы одновременно в Cache Compact?

1 ответ

Решение

Вы должны реализовать интерфейс Ncache IGenericTypeProvider из класса Runtime.dll GenericTypeProvider1: 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;
    }
Другие вопросы по тегам