2013-09-05 3 views
0

Я работаю над проектом MVC, поэтому в своем конструкторе контроллера я вызываю один из классов (GetServiceName), который возвращает мне имя службы как string (услугой является другой класс где все методы вызываются контроллером).создать экземпляр класса из строки, а затем использовать его

  1. Одним из вариантов является мой класс GetServiceName возвращает имя службы, а затем я инициализации, что (не знаю, как это сделать)

  2. я делаю что-то вроде этого в моем GetServiceName классе

    ObjectHandle oh; 
    oh = Activator.CreateInstance(null, ClassName); 
    return oh; 
    

Теперь я получаю oh как объект в мой контроллер, но, как я инициализировать его в мой контроллер что-то как-

oh _name = new oh();

(где oh является ObjectHandle возвращаемый класса GetServiceName)

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

Я знаю, что есть много вопроса на StackOverflow, связанный с этим, но я не могу получить мой код работает, используя любой из них

+0

'Activator.CreateInstance' правильный, хотя я не уверен, что правильно соблюдаю код. Вам нужно, чтобы объект был правильно заброшен - это проблема? –

+0

'oh _name = (oh) Activator.CreateInstance (null, ClassName);' –

+4

Кажется, что вы делаете это фабричный шаблон. Это также звучит как какое-то разрешение зависимости. – Romoku

ответ

0

После создания экземпляра класса вы должны получить сам объект от ручки:

ObjectHandle oh = Activator.CreateInstance(null, "typeName"); 
object instance = oh.Unwrap(); 
Смежные вопросы