我想使用与团结拦截,这里是我的代码:团结拦截和构造
UnityContainer container = new UnityContainer();
container.AddNewExtension<Interception>();
container.RegisterType<T, T>();
container.Configure<Interception>().SetDefaultInterceptorFor<T>(new VirtualMethodInterceptor());
return container.Resolve<T>();
如果T是带有参数的构造函数的类(一个空的构造函数)抛出一个异常时,我打电话解决,否则它的作品。 如何拦截一个非空构造函数的类型?
更新
UnityContainer container = new UnityContainer();
container.AddNewExtension<Interception>();
container.RegisterType<T, T>();
container.Configure<InjectedMembers>().ConfigureInjectionFor<T>(new InjectionConstructor());
container.Configure<Interception>().SetDefaultInterceptorFor<T>(new VirtualMethodInterceptor());
return container.Resolve<T>();
此代码的工作,但如果我想使用什么构造与论证?
我已经试过这样:
public static T Resolve<T>(object param)
{
UnityContainer container = new UnityContainer();
container.AddNewExtension<Interception>();
container.RegisterType<T, T>();
container.Configure<InjectedMembers>().ConfigureInjectionFor<T>(new InjectionConstructor(param));
container.Configure<Interception>().SetDefaultInterceptorFor<T>(new VirtualMethodInterceptor());
return container.Resolve<T>();
}
而且在我的代码:
var service = Resolve<MyService>(4);
而我回来的相同的异常如前面...
我不想注入什么,我只是想创建它将调用T. – 2009-06-11 17:21:57