gpt4 book ai didi

WCF DataContract ToString 函数

转载 作者:行者123 更新时间:2023-12-02 00:44:34 25 4
gpt4 key购买 nike

您可以覆盖 WCF DataContrat 中的 ToString 函数吗?现在我有:

[DataContract]
public class Keyword
{
public int ID { get; set; }
public string Name { get; set; }

public override string ToString()
{
return Name;
}
}

但是好像不行。无论如何让这个工作?

最佳答案

我意识到这是旧的,但想提供一个答案,因为我刚刚为使用这个想法的同事创建了一个示例应用程序。所有这些工作都可以在消费者/测试客户端完成。

如果您查看消费者/测试客户端上的代码,更具体地说,是作为服务引用的一部分生成的类,您将看到您感兴趣的 [DataContract] 类型。为了做到这一点您应该确保选择了“显示所有文件”。深入到“Reference.cs”类。这是 Reference.cs 中我的测试类的顶部:

namespace WebApplication1.UCCTestSvcRef {
using System.Runtime.Serialization;
using System;


[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="UCCRecord", Namespace="http://schemas.datacontract.org/2004/07/UCCTest")]
[System.SerializableAttribute()]
public partial class UCCRecord : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {

您需要使用的重要部分是命名空间部分类。要使用这些,您只需在同一类型的同一命名空间中的测试客户端中创建一个新类,并重写 ToString() 方法。这是一个示例,说明如何从消费者/测试客户端上新创建的 UCCRecord.cs 文件执行此操作。

namespace WebApplication1.UCCTestSvcRef
{
public partial class UCCRecord
{
public override string ToString()
{
return "Key: " + Key.ToString() + ", Time: " + Timestamp.ToString("d") + ", Value: " + Value;
}
}
}

请注意,我只能引用 KeyTimestamp 以及 Value,因为它们是 [DataContract] 的 [DataMember] 值.

如果您知道自己在寻找什么,这就相对简单了。如果这里有任何不清楚的地方,请告诉我,我会尽力澄清。

谢谢

关于WCF DataContract ToString 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1181039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com