我可以像这样将消息参数传递给ICallHandler实现:
var logic = container.Resolve<IBussinessLogic>(message);
并像这样使用它:
IMethodReturn ICallHandler.Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
{
Console.WriteLine(
string.Format(
"Begin {0} with param {1}",
input.MethodBase.Name,
message // parameter I need to be passed
)
);
var result = getNext.Invoke()(input, getNext);
Console.WriteLine("End " + input.MethodBase.Name);
return result;
}
?
最佳答案
您传递给message
方法的Resolve
实际上是Unity要构造的命名实例名称。 Unity使用此值来选择要使用的IBusinessLogic
实现。在构造实施对象之后,它将丢失。
因此,该值仅在对象构造期间在Unity内部;您的ICallHandler
无法以you cannot intercept constructors身份访问它。