接近界面中的内部类?

时间:2017-11-24 16:58:19

标签: c# inversion-of-control

这主要是为了使用依赖注入

的WPF项目中的整洁

在Java中,我可以执行以下操作:

public interface MyInjectable
{
    void ExampleMethod();

    public class Impl : MyInjectable
    {
        void ExampleMethod()
        {

        }
    }
}

使用DI框架时很好,因为你调用内部类MyInjectable.Impl()来实现类,并在其他地方编写MyInjectable。

在C#中,我必须这样做:

public interface IMyInjectable
{
    void ExampleMethod();
}

public class MyInjectable: IMyInjectable
{
    void ExampleMethod()
    {

    }
}

IE我必须将类命名为独特的界面和单独的界面。有没有更好的方法来做到这一点,或任何解决方法来获得接近界面内部Impl类的东西?

1 个答案:

答案 0 :(得分:0)

据我所知,在C#中没有更好的方法来解决这个问题。通常,由于C#中的匈牙利表示法很少,接口像在OP中一样通常以I(例如IMyInjectable)为前缀,从而留出了无前缀的名称(例如{{1} })。

但是,如果代码主要由MyInjectable / IFoo对组成,则很可能违反了Reused Abstractions Principle。如果可能,请重新考虑应用程序体系结构以解决该代码异味。