本文整理汇总了C#中IPublication.DescribeTo方法的典型用法代码示例。如果您正苦于以下问题:C# IPublication.DescribeTo方法的具体用法?C# IPublication.DescribeTo怎么用?C# IPublication.DescribeTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPublication
的用法示例。
在下文中一共展示了IPublication.DescribeTo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ThrowIfSubscriptionHandlerDoesNotMatchHandlerRestrictionOfPublisher
private static void ThrowIfSubscriptionHandlerDoesNotMatchHandlerRestrictionOfPublisher(ISubscription subscription, IPublication publication)
{
if (publication.HandlerRestriction == HandlerRestriction.None)
{
return;
}
if ((int)subscription.Handler.Kind == (int)publication.HandlerRestriction)
{
return;
}
using (var writer = new StringWriter(CultureInfo.InvariantCulture))
{
writer.Write("Publication ");
writer.WriteLine();
publication.DescribeTo(writer);
writer.WriteLine();
writer.Write("does not allow subscription ");
writer.WriteLine();
subscription.DescribeTo(writer);
writer.WriteLine();
writer.Write(" because publisher requires the subscription handler to be ");
writer.Write(publication.HandlerRestriction);
throw new EventTopicException(writer.GetStringBuilder().ToString());
}
}
示例2: ThrowIfPublisherAndSubscriberEventArgumentsMismatch
private static void ThrowIfPublisherAndSubscriberEventArgumentsMismatch(ISubscription subscription, IPublication publication)
{
Type publisherEventArgsType = publication.EventArgsType;
Type subscriberEventArgsType = subscription.EventArgsType;
// check that the T in EventHandler<T> is matching, the IsAssignableFrom method return false event if types can be assigned
// e.g. EventHandler<CustomEventArgs> is not assignable to EventHandler<EventArgs> when using IsAssignableFrom directly on event handler type
// therefore do the check on the event arguments type only.
// subscriberEventArgsType can be null if the handler method has no parameters.
if (subscriberEventArgsType != null && !subscriberEventArgsType.IsAssignableFrom(publisherEventArgsType))
{
using (var writer = new StringWriter(CultureInfo.InvariantCulture))
{
writer.Write("Publication ");
writer.WriteLine();
publication.DescribeTo(writer);
writer.WriteLine();
writer.Write("does not match with subscription ");
writer.WriteLine();
subscription.DescribeTo(writer);
throw new EventTopicException(writer.GetStringBuilder().ToString());
}
}
}