如何在C#中进行通用服务提供商调用?

时间:2017-01-26 14:27:07

标签: c# web-services generics provider

想象一下,我有一个提供商,它为我提供了许多我可以远程调用的方法。

MyProviderManager.Provider.CallMyFunction(int x, int y, int z);

我有一个类,它通过多种方式使用,在另一个扩展它的类中创建特定变量。

例如

[DataContract, Serializable]
public class InfoStatusServices
{
        [DataMember]
        public int Id { get; set; }

        [DataMember]
        public char TypeService { get; set; }

        [DataMember]
        public string IdUser { get; set; }

        [DataMember]
        public bool ResultStatus { get; set; } 
}

一个扩展它

[DataContract, Serializable]
public class InfoStatusServicesXPTO : InfoStatusServices
{
    [DataMember]
    public decimal? Balance { get; set; }
}

我的问题是,假设有几种不同类型的方法使用类InfoStatusServices

MyProviderManager.Provider.CallMyFunctionDark(InfoStatusServices info);
MyProviderManager.Provider.CallMyFunctionBlue(InfoStatusServices info);

有没有一种正确的方法我可以制作一个通用方法来调用这些而不是为所有颜色创建方法?

1 个答案:

答案 0 :(得分:1)

您可以创建颜色枚举:

.CallMyFunction(InfoStatusServices info, Color color)

然后您可以将此参数用作第二个参数。因此,根据颜色具有相同签名的方法可以表示为单一方法:

.CallMyFunction(info, Color.Black)

所以将此方法称为黑色将是这样的:

GLU.gluPerspective()