Использование Castle DynamicProxy для инициализации конструктора с параметрами

Как использовать Castle DynamicProxy для инициализации конструктора с параметрами? В данном случае MyClass(int).

public class MyClass
{
   public MyClass(){}
   public MyClass(int p1){}
}

В настоящее время CreateClassProxy() инициализирует MyClass().


person Babak    schedule 22.09.2013    source источник
comment
И я использую Castle.Core.3.2.0.   -  person Babak    schedule 22.09.2013


Ответы (1)


CreateClassProxy имеет много перегрузок. В том числе тот, где вы передаете параметры в массиве object. Это должно сработать для вас:

generator.CreateClassProxy(typeof(MyClass), new object[] { (int)2 });

Вот официальная подпись:

public object CreateClassProxy(Type classToProxy, object[] constructorArguments, params IInterceptor[] interceptors);

person meilke    schedule 22.09.2013
comment
Второй параметр CreateClassProxy() предназначен для перехватчиков, а не для параметров! - person Babak; 22.09.2013
comment
Скорректировал мой ответ: есть перегрузка, которая принимает параметры. - person meilke; 22.09.2013
comment
он он! Я использовал CreateClassProxy‹TClass›(), который имеет только 2 перегрузки. - person Babak; 22.09.2013