Могу ли я передать сообщение параметр для реализации ICallHandler так:Unity Interception: Как передать параметр в реализацию 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;
}
?
Я знаю, что этот код не работает. Я написал это, чтобы описать свою идею. Все, что мне нужно - передать параметр из кода вызова вызова в реализацию ICallHandler. Также я обнаружил, что можно каким-то образом передать параметр конструктору реализации ICallHandler. Но ICallHandler contructor вызывает только один раз на контейнер (как я тестировал). Но мне нужен параметр pass avery time, который я вызываю Resolve <>(). –
Какова природа 'сообщения'? Это то, что вы знаете во время разработки? –
В моем примере это ** строка **. В моем реальном приложении это ** System.Web.Services.WebService **. Мой аспект пытается предварительно подготовить препараты с экземпляром ** WebService ** до того, как будет вызвана реальная логика. –