Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 选择两个对象中的一个,不带'IFoo foo=new Foo1()`_Asp.net Mvc_C# 4.0 - Fatal编程技术网

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 代码: 您可以使用许多反转控制容器来配置此功能,但在应用程序中为这样一

为了进一步了解这一点,我想问一下最佳路径

我拥有的

  • 我正在使用2个web服务,一个用于版本1,另一个用于版本2
  • 在代码中,我在client表中通过一个整数使用每个版本,
    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();
        }
    }