如何更改KeyValuePair中返回的值的名称/标签

时间:2017-05-23 20:11:48

标签: c# wcf

我们创建了一个返回KeyValuePair的WCF方法。作为标准,每个字段的名称或标签是Key或Value。我们的BA询问是否可以更改,以便服务返回名称为CountyKey和CountyName而不是Key和Value。这甚至可能吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

填写该要求的一种方法是编写包含这些字段的自定义类:

public class CountryKVP<TKey, TValue>
{
    public TKey CountryKey { get; }
    public TValue CountryValue { get; }

    public CountryKVP(TKey key, TValue value)
    {
        CountryKey = key;
        CountryValue = value;
    }

    public CountryKVP(KeyValuePair<TKey, TValue> input)
    {
        CountryKey = input.Key;
        CountryValue = input.Value;
    }
}

然后,您可以直接从WCF方法传递此类:

CountryKVP<string, string> country = client.WebSvcThatReturnsCountryKVP();    

或者,在消费方面,您可以通过将返回的KeyValuePair传递给构造函数来初始化它:

var country = new CountryKVP<string, string>(client.WebSvcThatReturnsKVP);

// Now use the properties:
Console.WriteLine("{0} = {1}", country.CountryKey, country.CountryValue);

此外,由于我们在此处理单个KeyValuePair,通常您只需将其分配给名为Country的属性,然后访问Key和{{ 1}}喜欢:

Value