我想使用與團結攔截,這裏是我的代碼:團結攔截和構造
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