相关疑难解决方法(0)

如何避免依赖注入构造函数的疯狂?

我发现我的构造函数开始看起来像这样:

public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2.... )
Run Code Online (Sandbox Code Playgroud)

随着参数列表不断增加.由于"容器"是我的依赖注入容器,为什么我不能这样做:

public MyClass(Container con)
Run Code Online (Sandbox Code Playgroud)

每个班级?有什么缺点?如果我这样做,感觉我正在使用一个美化的静电.请分享您对IoC和依赖注入疯狂的看法.

c# java dependency-injection ioc-container inversion-of-control

288
推荐指数
4
解决办法
6万
查看次数

依赖注入:乌龟一路下来?

所以我想知道单元测试在处理外部依赖关系方面是如何工作的.在这里和其他地方,我已经熟悉依赖注入,以及它如何允许我们测试代码的单元(A).但是,我对如何测试现在具有外部依赖性的其他单元(B和C)感到困惑,因此他们可以将它注入原始单元(A).

例如,假设一些类Foo使用外部依赖...

class Foo
{
    private ExternalDependency ed;
    public int doSomethingWithExternalDependency() {...}
}
Run Code Online (Sandbox Code Playgroud)

而且Bar使用Foo ...

class Bar
{
    public int doSomethingWithFoo
    {
        Foo f = new Foo();
        int x = f.doSomethingWithExternalDependency();
        // Do some more stuff ...
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我知道我可以使用依赖注入,以便我可以测试Foo,但是我如何测试Bar?我想,我可以再次使用依赖注入,但在某些时候某些单元需要实际创建外部依赖; 那我该怎么测试那个单位呢?

unit-testing dependency-injection

16
推荐指数
1
解决办法
1223
查看次数

如何在MVVM之后为WPF构建通用/可重用的模式对话框

我想构建一个通用/可重用的模式对话框,我可以在我们的WPF(MVVM) - WCF LOB应用程序中使用它.

我有一个视图和相关的ViewModel,我想使用对话框显示.Views和ViewModel之间的绑定是使用以类型为目标的DataTemplates完成的.

以下是我能够起草的一些要求:

  • 我更喜欢这个基于Window而不是使用Adorners和控件,它们就像一个模态对话框.
  • 它应该从内容中获得最小尺寸.
  • 它应该以所有者窗口为中心.
  • 窗口不得显示"最小化"和"最大化"按钮.
  • 它应该从内容中获得它的标题.

做这个的最好方式是什么?

wpf modal-dialog datatemplate mvvm

11
推荐指数
2
解决办法
4794
查看次数