Tag: dependency injection模拟

是否应避免使用静态类,因为它会导致dependency injection困难?

负责创建“核心”库的人创建了一组静态类,提供来自日志记录,审计和常见数据库访问方法的各种实用程序。 我个人认为这很臭,因为我们现在有一组很难测试的核心库,因为我不能模拟/存根这些类或对它们的构造函数进行任何注入。 我想我可以使用TypeMock将这些存在,但我宁愿免费使用它。 你怎么看? 编辑 如果你不认为他们很难测试,你可以给出一个如何测试它们的例子。 这些静态类实例化其他类型以执行其function。

“新建”接口

几天前,我看到CoClassAttribute以我以前没有想到的方式使用。 [ComImport, CoClass(typeof(Foo)), Guid(“787C1303-AE31-47a2-8E89-07C7257B1C43”)] interface IFoo { void Bar(); } class Foo : IFoo { public void Bar() { Console.WriteLine(“Oh retado!”); } } 用作: class CoClassDemo { public static void Show() { var a = new IFoo(); a.Bar(); } } 这应该不会让我感到惊讶,因为自从.NET Framework早期以来,COM Interop正是这样做的。 在.NET Reflector中挖掘COM Interop代码时,我根本没有那么多关注。 method public hidebysig static void Show() cil managed { […]