泛型C# - 从静态泛型类创建实例

时间:2016-08-03 14:07:43

标签: c# generics

我的应用程序中有一个工厂类,但由于我对泛型缺乏了解,我不知道如何创建这种特殊类型的实例。

有人会善意地指出我如何调用这个类以便它返回一个服务......任何帮助都会受到赞赏。

<Window.InputBindings>

    <KeyBinding Modifiers="Ctrl" Key="C" Command="{Binding CheckShortcutsCommand}" />

    <!-- More KeyBindings and MouseBindings here -->

</Window.InputBindings>

2 个答案:

答案 0 :(得分:2)

不知道可以实例化的类的名称......

var service = ServiceFactory<ConcreteImplementationService>.GetSecureService(url, cert);

答案 1 :(得分:1)

由于您使用的是静态方法,因此请使用方法级通用参数:

TService GetSecureService<TService>(string serviceUrl, X509Certificate certificate)
   where TService : WebServicesClientProtocol, new()
{
...
     return Service<TService>(serviceUrl, certificate);
}

您可能会发现所有方法都将使用此模式,并按照上面调用Service()时的方式传递泛型类型。

MSDN关于通用方法的文章: https://msdn.microsoft.com/en-us/library/twcad0zb.aspx