gpt4 book ai didi

c# - ASP.NET MVC3 手工编码 IoC

转载 作者:行者123 更新时间:2023-11-30 13:17:27 25 4
gpt4 key购买 nike

Ninject、Sprint.NET、Unity、Autofac、CaSTLe.Windsor 都是可用的 IoC 框架的例子。但是,我喜欢自己编写的学习曲线和控制。不“重新发明轮子”而只使用现有结构绝对是常见的做法。如果您的评论符合这些原则,请保持温和。

不使用 XML 可以实现 IoC 吗?在我看来,上述框架中的大部分(如果不是全部的话)都使用 XML,但我宁愿只用 C# 编写我的框架,而不是使用 XML 来加载 .dll。反正C#最终都转成了一个.dll。

根据我的理解,如果有误请更正,IoC 可以与 DI 一起使用,使类的功能基于它们的定义和实现,同时允许关注点分离。

这是在 C# 中使用 Microsoft 的库 System.ComponentModel.IContainer 通过继承它的类来完成的。一个类,例如 Product,将有一个接口(interface) IProduct。然后,通用构造函数将从 IContainer 继承,并在构造函数中允许传入存储库、传入实例化对象和传入函数。这将允许 Controller 操作随后实例化接口(interface)(IProduct ), 用当前存储库实例实例化通用构造函数,然后将接口(interface)和函数传递给它。

这个设置准确吗?

我仍在尝试了解有关此主题的更多信息,并阅读了有关 IoC、DI 的维基文章,阅读了有关 CaSTLe.Windsor、ninject、Unity 的文章,并查看了 MSDN 中有关使用的 C# 库的多个定义.非常感谢任何帮助、更正或建议。谢谢

最佳答案

Can IoC be implemented without the use of XML?

是的,可以在不使用任何 XML 的情况下配置 Ninject、Unity、CaSTLe Windsor 和 Autofac。 (对Spring.NET不太了解,上次用是不可能的,1.3版本)

From my understanding, if wrong please correct, IoC can be used with DI to make the functionality of classes be based off of their definition and implementation while allowing for a separation of concerns.

如果在“IoC”下你指的是“IoC 容器”那么是的,它可以与 DI 一起使用,但由于 DI 是控制反转的一个特例,你的 IoC 容器将只是你依赖项的容器。通过仅仅拥有它,您不会神奇地获得任何 DI 友好类型。它只是对管理您的反向 依赖项的支持。

编辑

正如 Mystere Man 在他的回答中指出的那样,您需要提高对 IoC 容器的理解。所以我建议阅读此 wonderful book (来自 Mark Seeman)关于所有这些东西。

关于c# - ASP.NET MVC3 手工编码 IoC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9040510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com