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