我有一个返回颜色列表的WCF操作:
public List<Color> GetColors()
{
List<Color> colors = new List<Color>();
colors.Add(new Color {Name = "Red", Code = 1});
colors.Add(new Color {Name = "Blue", Code = 2});
return colors;
}
当我在WCF测试客户端中运行它时,它工作正常,我可以看到颜色数组,但我真正想要的是它是否返回XML响应然后我可以设置RichTextBox
' s文本到xml的内容。我怎么能这样做?
答案 0 :(得分:2)
如果您希望列表的XML表示返回给客户端,我的建议是序列化列表并将其作为字符串返回给客户端。
以下是一些可以帮助您入门的代码。没有测试过,但我认为你可能很容易改变。
public string GetColorsXmlRepresentation()
{
var colors = new List<Color>();
colors.Add(new Color {Name = "Red", Code = 1});
colors.Add(new Color {Name = "Blue", Code = 2});
return Serialize<List<Color>>(colors);
}
public string Serialize<T>(T instance)
{
var data = new StringBuilder();
var serializer = new DataContractSerializer(instance.GetType());
using (var writer = XmlWriter.Create(data))
{
serializer.WriteObject(writer, instance);
writer.Flush();
return data.ToString();
}
}
希望有所帮助
答案 1 :(得分:1)
如果希望WCF服务返回XML,则使其返回XML。如果您希望它返回List<Color>
,则应返回List<Color>
。
答案 2 :(得分:0)
您不能在WCF合同中使用开放式泛型。 SOAP对泛型没有任何支持。