Как создать экземпляр универсального типа для следующей ситуации

c# .net generics

65 просмотра

1 ответ

20 Репутация автора

у меня есть следующий код, пожалуйста, дайте мне знать, как создать экземпляр во время выполнения без указания типа во время кодирования.

MyObject productobject = something.

мне нужен объект типа

 AccessValuesFrom<long,double>,AccessValuesFrom<long,string>..etc

Вообще я могу создать объект ниже:

 AccessValuesFrom<long,double> accessData=productobject.ElementInfo.GetAccessValues<double>(something, something);

но мне нужен AccessValuesFrom во время выполнения. долго предопределено. как создать экземпляры для такого типа, когда нет прямого способа создания экземпляра (моя ситуация, которую я должен вызвать

  productobject.ElementInfo.GetAccessValues<double>(something, something)

создать инстаграм.

Автор: Chandramouli Veebhudhi Источник Размещён: 14.06.2013 04:39

Ответы (1)


3 плюса

1631 Репутация автора

Решение

Если у вас есть Typeобъект на данный момент, вы можете реализовать GetAccessValuesтак:

object GetAccessValues(Type type, something, something)
{
     var result = Activator.CreateInstance(
           typeof(AccessValuesFrom<,>).MakeGenericType(typeof(long), type));
     //do something with something
     return result;
}

Также будет хорошо создать интерфейс для всех общих типов AccessValuesFromс общими методами.

Автор: Oleh Nechytailo Размещён: 14.06.2013 04:52
32x32