答案 0 :(得分:14)
作为LightInject的作者,我觉得我应该对此发表评论:)
假设您是一名图书馆开发人员,并希望能够在内部使用IoC框架而不依赖于第三方程序集。通过使用LightInject的源版本,可以非常轻松地完成此操作,您仍然可以将库作为单个程序集发送。
许多框架开发人员选择不使用IoC框架只是因为他们不想要额外的依赖。
替代方法是使用ILMerge之类的工具,它能够将两个或多个程序集合并到一个程序集中。
这是一个更高级的选项,还需要额外的构建步骤来执行合并。
请注意,LightInject有两种版本,源版本所有类型都是内部版本,二进制版本就像任何其他第三方依赖项一样。
首先承担依赖关系可能并不是那么糟糕,但如果您是框架开发人员,如果框架的使用者使用相同依赖关系的另一个版本,则很容易遇到问题
祝你好运
Bernhard Richter
答案 1 :(得分:5)
它使集成作为另一个项目中的源更容易:只需将一个文件添加到项目中就可以忘掉它。根据LightInject的official website,这是一个受支持的安装方案,甚至还有一个NuGet包。
如果您想阅读它,我强烈建议您在Visual Studio中打开它并使用代码导航功能查找您想要的内容,例如: VS 2013的Solution Explorer可以将文件内的类显示为该文件的子类。