1
public interface Interfcae1
{
void OP1();
}
public interface Interfcae2
{
void OP2();
}
public interface Interfcae3
{
void OP3();
}
public class Multi : Interfcae1, Interfcae2, Interfcae3
{
public void OP1()
{
System.Threading.Thread.Sleep(500);
}
public void OP2()
{
System.Threading.Thread.Sleep(1500);
}
public void OP3()
{
System.Threading.Thread.Sleep(2500);
}
}
私は、すべての機能を傍受するために団結を使用したいが、それは各呼び出しのために取るどのくらいの時間をテストするために呼び出して、このコードを持っているいくつかのインタフェースを呼び出します。
私のメインのコードは
IUnityContainer container = new UnityContainer();
container.AddNewExtension<Interception>();
container.RegisterType<Interfcae1, Multi>(
// new InjectionConstructor(typeof(string)),
new Interceptor<TransparentProxyInterceptor>(),
new InterceptionBehavior<InterceptBehavior>());
container.RegisterType<Interfcae2, Multi>(
// new InjectionConstructor(typeof(string)),
new Interceptor<TransparentProxyInterceptor>(),
new InterceptionBehavior<InterceptBehavior>());
container.RegisterType<Interfcae2, Multi>(
// new InjectionConstructor(typeof(string)),
new Interceptor<TransparentProxyInterceptor>(),
new InterceptionBehavior<InterceptBehavior>());
var proxy = container.Resolve<Multi>();
ですが、決意で、私は例外はタイプがインターセプト可能でないことをあなたがConfigure
に
i)が(このラインのvar INTP = container.Configure <インターセプト>を追加したSetInterceptorFor(typeof演算(マルチ)、新しいTransparentProxyInterceptor()。 );例外を得ました - > ConsoleApplication1.Multi型はインターセプトできません。 パラメータ名:typeToIntercept –
'MarshalByRefObject'をMultiクラスに追加します。 – code4life
MarshalByRefObjectとは何ですか? –