本文整理汇总了C#中ContainerBuilder.RegisterCallback方法的典型用法代码示例。如果您正苦于以下问题:C# ContainerBuilder.RegisterCallback方法的具体用法?C# ContainerBuilder.RegisterCallback怎么用?C# ContainerBuilder.RegisterCallback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ContainerBuilder
的用法示例。
在下文中一共展示了ContainerBuilder.RegisterCallback方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RegisterGenericDecorator
public static IRegistrationBuilder<object, OpenGenericDecoratorActivatorData, DynamicRegistrationStyle> RegisterGenericDecorator(ContainerBuilder builder, Type decoratorType, Type decoratedServiceType, object fromKey, object toKey)
{
if (builder == null) throw new ArgumentNullException("builder");
if (decoratorType == null) throw new ArgumentNullException("decoratorType");
if (decoratedServiceType == null) throw new ArgumentNullException("decoratedServiceType");
var rb = new RegistrationBuilder<object, OpenGenericDecoratorActivatorData, DynamicRegistrationStyle>(
(Service)GetServiceWithKey(decoratedServiceType, toKey),
new OpenGenericDecoratorActivatorData(decoratorType, GetServiceWithKey(decoratedServiceType, fromKey)),
new DynamicRegistrationStyle());
builder.RegisterCallback(cr => cr.AddRegistrationSource(
new OpenGenericDecoratorRegistrationSource(rb.RegistrationData, rb.ActivatorData)));
return rb;
}
示例2: RegisterGeneric
public static IRegistrationBuilder<object, ReflectionActivatorData, DynamicRegistrationStyle> RegisterGeneric(ContainerBuilder builder, Type implementor)
{
if (builder == null) throw new ArgumentNullException("builder");
if (implementor == null) throw new ArgumentNullException("implementor");
if (!implementor.GetTypeInfo().IsGenericTypeDefinition)
throw new ArgumentException(string.Format(
CultureInfo.CurrentCulture, OpenGenericRegistrationExtensionsResources.ImplementorMustBeOpenGenericType, implementor));
var rb = new RegistrationBuilder<object, ReflectionActivatorData, DynamicRegistrationStyle>(
new TypedService(implementor),
new ReflectionActivatorData(implementor),
new DynamicRegistrationStyle());
builder.RegisterCallback(cr => cr.AddRegistrationSource(
new OpenGenericRegistrationSource(rb.RegistrationData, rb.ActivatorData)));
return rb;
}
示例3: RegisterGeneric
public static IRegistrationBuilder<object, ReflectionActivatorData, DynamicRegistrationStyle> RegisterGeneric(ContainerBuilder builder, Type implementor)
{
if (builder == null) throw new ArgumentNullException("builder");
if (implementor == null) throw new ArgumentNullException("implementor");
if (!implementor.IsGenericTypeDefinition)
throw new ArgumentException(string.Format(
"The type {0} is not an open generic type definition.", implementor));
var rb = new RegistrationBuilder<object, ReflectionActivatorData, DynamicRegistrationStyle>(
new TypedService(implementor),
new ReflectionActivatorData(implementor),
new DynamicRegistrationStyle());
builder.RegisterCallback(cr => cr.AddRegistrationSource(
new OpenGenericRegistrationSource(rb.RegistrationData, rb.ActivatorData)));
return rb;
}