Asp.net mvc 选择两个对象中的一个,不带'IFoo foo=new Foo1()`
为了进一步了解这一点,我想问一下最佳路径 我拥有的Asp.net mvc 选择两个对象中的一个,不带'IFoo foo=new Foo1()`,asp.net-mvc,c#-4.0,Asp.net Mvc,C# 4.0,为了进一步了解这一点,我想问一下最佳路径 我拥有的 我正在使用2个web服务,一个用于版本1,另一个用于版本2 在代码中,我在client表中通过一个整数使用每个版本,client.ws\u version=1或2 我所学到的 这是最糟糕的事情:) 所以问题是,实现这一目标的最佳方法是什么?依赖注入?其他过程?如果语句如此简单,这实际上不是一个坏方法,但您应该将语句封装在webservicepositoryprovider 代码: 您可以使用许多反转控制容器来配置此功能,但在应用程序中为这样一
client.ws\u version=1或2
所以问题是,实现这一目标的最佳方法是什么?依赖注入?其他过程?如果语句如此简单,这实际上不是一个坏方法,但您应该将语句封装在
webservicepositoryprovider
代码:
您可以使用许多反转控制容器来配置此功能,但在应用程序中为这样一个简单的功能实现DI未免有些过火。您考虑过使用WCF吗?它为同时运行的多个服务版本提供处理我正在使用一个WCF服务,
WebServicePositionVersion1
和WebServicePositionVersion2
是WCF的两个版本,实际上,一个是ASMX服务,另一个是WCF服务,基于ws\u版本的where
我知道该用什么了。很快我看到了这个屏幕,我的脑细胞开始互相碰撞,我不知道该怎么做,谢谢大家的提醒。
IWebServiceRepository repository;
if(client.ws_version == 1)
repository = new WebServiceRepositoryVersion1();
else
repository = new WebServiceRepositoryVersion2();
public class WebServiceRepositoryProvider
{
public IWebServiceRepository GetRepository(ClientTable context)
{
return context.ws_version == 1
? new WebServiceRepositoryVersion1()
: new WebServiceRepositoryVersion2();
}
}