小编Val*_*kiy的帖子

Castle Windsor"Container"和"Kernel"有什么区别?

我开始使用Windsor了,我想知道何时使用container和何时使用kernel.例如

var c = new WindsorContainer();
c.Register(Component.For<ITt>().ImplementedBy<Tt>());
var tt = c.Resolve<ITt>();
Run Code Online (Sandbox Code Playgroud)

一切都很好,一切正常,但这也是c.kernel可以做同样的,为什么?

var c = new WindsorConatiner();
c.kernel.Register(Component.For<ITt>().ImplementedBy<Tt>());
var tt = c.kernel.Resolve<ITt>();
Run Code Online (Sandbox Code Playgroud)

老实说,我不明白有什么区别 之间的 " 容器 "和" 核心 "一词.在我看来,它听起来像是不同IoC库中同一个东西的两个名字?

PS我读过这篇文章,但仍然无法理解这里有两个实现的功能吗?

更新: 刚刚在我的代码中找到这样的行

      c.Kernel.Resolver.AddSubResolver(new ArrayResolver(c.Kernel));
Run Code Online (Sandbox Code Playgroud)

通过内核做到这一点的原因是什么?我完全输了

c# castle-windsor ioc-container

9
推荐指数
1
解决办法
2499
查看次数

DataProvider vs Repository

DataProvider和Repository有什么区别?在选择如何命名我的班级时,我应该使用什么逻辑?

存储库模式或多或少地描述了类:

internal interface IPersonRepository{
  public void Update(Person p);
  public void Add(Person p);
  public Person Get(int id);
  public IEnumerable<Person> GetBatch();
  public void Delete(Person p);
}
Run Code Online (Sandbox Code Playgroud)

这是一种理论,但在现实生活中可能还有其他更具体的方法,比如GetListPerson(int[] ids)等等.

但是与DataProvider有什么区别?

c# architecture oop ado.net inversion-of-control

6
推荐指数
1
解决办法
7707
查看次数

MSBuild任务静默执行

我有完美的msbuild脚本.但是当它在执行构建任务时运行时,我看到了构建进度的所有输出.有没有办法写:

建设项目......好的.

而不是1000行的文字?

msbuild task output

3
推荐指数
1
解决办法
2256
查看次数

Func <sometype> + Func <sometype>的真实示例

让我们说你有:

Func<string> a = () => "string here";
Func<string> b = () => "other string here";

var c = a + b;
Run Code Online (Sandbox Code Playgroud)

真实世界需要什么呢?

c# lambda

3
推荐指数
1
解决办法
85
查看次数