相关疑难解决方法(0)

主要的C#DI/IoC框架如何比较?

冒着进入神圣战争领域的风险,这些流行的DI/IoC框架有哪些优点和缺点,可以轻松地被认为是最好的?..:

  • Ninject
  • 统一
  • Castle.Windsor
  • Autofac
  • StructureMap

我还没有列出其他用于C#的DI/IoC框架吗?

在我的用例的上下文中,我正在构建一个客户端WPF应用程序,一个WCF/SQL服务基础架构,易用性(特别是在清晰简洁的语法方面),一致的文档,良好的社区支持和性能都是重要因素在我的选择.

更新:

所引用的资源和重复问题似乎已经过时,那些了解所有这些框架的人能否提出并提供一些真正的见解?

我意识到关于这个主题的大多数意见可能都有偏见,但我希望有人花时间研究所有这些框架,并且至少进行了一般性的客观比较.

如果以前没有这样做,我非常愿意自己进行调查,但我认为至少有一些人已经这样做了.

第二次更新:

如果您有多个DI/IoC容器的使用经验,请对这些容器的优缺点进行排序和总结,谢谢.这不是发现人们制作的所有模糊小容器的练习,我正在寻找流行(和主动)框架之间的比较.

c# dependency-injection ninject ioc-container unity-container

298
推荐指数
7
解决办法
10万
查看次数

在多个文件中使用指令重复

我有5个C#文件,共有20个using指令.我想摆脱这个代码重复,特别是因为这20个使用指令在逻辑上属于一起.在C或C++中,我会创建一个包含这20个包含文件的额外头文件.这个额外的头文件充当一个层,然后一次包含20个其他文件.

不幸的是我不知道如何在C#中做到这一点.有什么建议?

c# using-directives code-duplication

5
推荐指数
1
解决办法
709
查看次数

如何组织将为多个平台构建的类库项目的源代码?

我正在开发一个类库项目,它为客户端应用程序提供了许多有用的扩展方法.该项目预计将用于各种平台(.NET框架的版本).

为了做到这一点,我将使用几个单独的Visual Studio项目,每个项目都用于自己的平台.这些项目可能有自己的外部依赖项,但源代码将通过使用"添加作为参考"功能在它们之间共享.这种方法允许我通过在一个文件中编写代码来更改所有项目的实现,而无需将其复制到其他项目.记住目标框架的差异,我需要使用#if编译器指令.每个项目的结果将作为特定版本的.NET框架的NuGet包发布.

这是我有两个问题:

  1. 每个新文件都必须添加到每个项目中,否则将无法编译,并且在某个平台上无法访问其中定义的每个类.你可以意识到这很容易忘记.有没有办法避免这种文件跟踪?有可能实现自动化吗?
  2. 如何改善整个基础设施?您在项目中使用了哪些方法和/或解决方案?

c# projects-and-solutions code-organization visual-studio

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