小编use*_*613的帖子

在autofac中自动注册接口到类

我正在做的项目,每个类都有自己的接口,具有以下命名约定

ClassA.cs : IClassA.cs

ClassB.cs : IClassB.cs 等

目前在 Autofac 的引导程序中,我反复放置

builder.RegisterType<ClassA>.As<IClassA>();
builder.RegisterType<ClassB>.As<IClassB>();
Run Code Online (Sandbox Code Playgroud)

有一些单身人士可以很好地衡量。

有没有办法自动化绑定过程?我知道手动添加绑定不需要大量的额外工作,但随着时间的推移它会变得更糟,我敢肯定。

我目前在我的容器中有以下内容

builder.RegisterType<MyClass>().As<IMyClass>().SingleInstance();

var myAss = Assembly.GetExecutingAssembly();
builder.RegisterAssemblyTypes(myAss)
   .Where(t => t.IsClass )
   .As(t => t.GetInterfaces().Single(i => 
   ( i.Name.Length == t.Name.Length + 1 ) && 
   ( i.Name == "I" + t.Name)));
Run Code Online (Sandbox Code Playgroud)

但是,查看生成器的监视窗口。看起来好像它可能会注册 Myclass 两次。现在我在这里可能完全错了,因为我一生都无法通过监视窗口找到实际在构建器中注册的内容。

如果我错了,请给我一巴掌。

c# autofac

4
推荐指数
1
解决办法
4225
查看次数

Ninject中.Resolve和.Get之间的区别

只是想对ninject中Kernel.Resolve和Kernel.Get之间的区别做一些澄清.

Kernel.Get状态的描述

通过使用与指定约束匹配的第一个绑定来获取指定服务的实例

Kernel.Resolve状态的描述

解析指定请求的实例.在消费者迭代枚举之前,实际上并未解析实例.

您可以在哪些情况下使用其中任何一种?(现在我正在使用Get)

ninject

2
推荐指数
1
解决办法
1272
查看次数

标签 统计

autofac ×1

c# ×1

ninject ×1