本文整理汇总了C#中ContainerBuilder.RegisterDecorator方法的典型用法代码示例。如果您正苦于以下问题:C# ContainerBuilder.RegisterDecorator方法的具体用法?C# ContainerBuilder.RegisterDecorator怎么用?C# ContainerBuilder.RegisterDecorator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ContainerBuilder
的用法示例。
在下文中一共展示了ContainerBuilder.RegisterDecorator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Register
public static void Register(ContainerBuilder builder)
{
builder.RegisterType<MongoEventStoreRepository>()
.As<IEventStoreRepository>()
.InstancePerRequest();
builder.Register(c => new AccountIdResolver(new MongoAccountRepository()))
.As<IAccountIdResolver>()
.InstancePerRequest();
builder.RegisterType<MongoAccountRepository>()
//.As<IAccountRepository>()
.Named<IAccountRepository>("account")
.InstancePerRequest();
builder.RegisterDecorator<IAccountRepository>(
(c, inner) => new MongoAccountRepositoryWithEventStore(inner,
new MongoEventStoreRepository(c.Resolve<IAccountIdResolver>())),
fromKey: "account")
.InstancePerRequest();
builder.RegisterType<MongoQueryRepository>()
//.As<IQueryRepository>()
.Named<IQueryRepository>("query")
.InstancePerRequest();
builder.RegisterDecorator<IQueryRepository>(
(c, inner) => new MongoQueryRepositoryWithEventStore(inner,
new MongoEventStoreRepository(c.Resolve<IAccountIdResolver>())),
fromKey: "query")
.InstancePerRequest();
builder.RegisterType<MongoQueryLogRepository>()
.As<IQueryLogRepository>()
.InstancePerRequest();
BsonClassMap.RegisterClassMap<Account>();
BsonClassMap.RegisterClassMap<EventStore>(classMap => {
classMap.AutoMap();
classMap.GetMemberMap(es => es.EventName).SetRepresentation(BsonType.String);
});
BsonClassMap.RegisterClassMap<AuthorizationSettings>(classMap => {
classMap.AutoMap();
classMap.GetMemberMap(aus => aus.Operation).SetRepresentation(BsonType.String);
classMap.GetMemberMap(aus => aus.AccountId).SetRepresentation(BsonType.ObjectId);
});
BsonClassMap.RegisterClassMap<Note>(classMap =>
{
classMap.AutoMap();
classMap.GetMemberMap(n => n.AccountId).SetRepresentation(BsonType.ObjectId);
});
}
示例2: DecoratingANamedService
public DecoratingANamedService()
{
const string from = "from";
var builder = new ContainerBuilder();
builder.RegisterType<Implementer1>().Named<IService>(from);
builder.RegisterType<Implementer2>().Named<IService>(from);
builder.RegisterDecorator<IService>(s => new Decorator(s), from);
_container = builder.Build();
}