调用接口方法,不知道谁实现了接口?

时间:2013-10-29 15:08:01

标签: c#

我有一个asp.net WebForm项目,我想在几个项目中拆分逻辑:

我在解决方案中创建了3个项目。      -前端     -合同     &安培; -Backend

合同包括模型和合同接口。 后端实现了契约接口。

是否可以从前端调用Contract中的方法,而不知道实现接口的后端?

1 个答案:

答案 0 :(得分:6)

你的意思是这样吗?

public interface IContract { void Method(); }

public class Backend : IContract { public void Method() {} }

public class Frontend
{
    public IContract Contract { get; set; }

    public Frontend(IContract contract)
    {
        Contract = contract;
    }

    public void DoSomething()
    {
        Contract.Method();
    }
}

Frontend的初始化程序中,您可以显式传入new Backend(),也可以使用依赖注入框架从定义的配置中自动解析IContract接口参数。