基本クラスを作成し、ユニティを使用してデフォルトのインターセプトを登録しようとしています。解決する前に各派生型も登録していますが、機能していません。ここで BaseMethod がインターセプトされることを期待しますが、そうではありません。
public class AbstractResponse
{
private string name;
public virtual void BaseMethod()
{
Console.WriteLine("Base");
}
}
public class DocumentResponse:AbstractResponse
{
public virtual void Test()
{
Console.WriteLine("In Test Method");
}
}
var container = new UnityContainer(); container.AddNewExtension<Interception>();
container.RegisterType<AbstractResponse>(
new DefaultInterceptor<VirtualMethodInterceptor>(),
new DefaultInterceptionBehavior<TraceBehavior>()).
RegisterType<AbstractResponse,DocumentResponse>();
container.Resolve<DocumentResponse>().BaseMethod();