本文整理汇总了C#中IHandler.Initialize方法的典型用法代码示例。如果您正苦于以下问题:C# IHandler.Initialize方法的具体用法?C# IHandler.Initialize怎么用?C# IHandler.Initialize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IHandler
的用法示例。
在下文中一共展示了IHandler.Initialize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Subscription
/// <summary>
/// Initializes a new instance of the <see cref="Subscription"/> class.
/// </summary>
/// <param name="subscriber">The subscriber.</param>
/// <param name="handlerMethod">The handler method.</param>
/// <param name="handler">The handler used to execute the subscription.</param>
/// <param name="subscriptionMatchers">The subscription matchers used for this subscription.</param>
/// <param name="extensionHost">The extension host holding all extensions.</param>
public Subscription(
object subscriber,
MethodInfo handlerMethod,
IHandler handler,
IList<ISubscriptionMatcher> subscriptionMatchers,
IExtensionHost extensionHost)
{
if (handlerMethod == null)
{
throw new ArgumentNullException("handlerMethod", "handlerMethod must not be null.");
}
if (handlerMethod.IsStatic)
{
throw new StaticSubscriberHandlerException(handlerMethod);
}
this.subscriber = new WeakReference(subscriber);
this.handlerMethodName = handlerMethod.Name;
this.handlerMethodInfo = handlerMethod;
this.subscriptionMatchers = subscriptionMatchers;
this.handler = handler;
this.extensionHost = extensionHost;
ParameterInfo[] parameters = handlerMethod.GetParameters();
if (IsValidEventHandler(parameters))
{
ParameterInfo parameterInfo = handlerMethod.GetParameters()[1];
this.eventArgsType = parameterInfo.ParameterType;
this.eventHandlerType = typeof(EventHandler<>).MakeGenericType(this.eventArgsType);
}
else
{
throw new InvalidSubscriptionSignatureException(handlerMethod);
}
handler.Initialize(subscriber, handlerMethod, this.extensionHost);
}