我知道这篇文章有些旧了,但是我想提供一个答案,因为我刚刚为我的同事创建了一个使用这个想法的示例应用程序。所有这些工作都可以在消费者/测试客户端上完成。
如果你查看消费者/测试客户端上的代码,特别是作为服务引用的一部分生成的类,你会看到你感兴趣的[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 {
重要的部分是您需要使用的
namespace
和
partial class
。要使用它们,您只需在测试客户端中创建与相同类型、相同命名空间的新类,并重写ToString()方法即可。
以下是如何从新创建的UCCRecord.cs文件中执行该操作的示例。
namespace WebApplication1.UCCTestSvcRef
{
public partial class UCCRecord
{
public override string ToString()
{
return "Key: " + Key.ToString() + ", Time: " + Timestamp.ToString("d") + ", Value: " + Value;
}
}
}
请注意,我只能引用
Key
、
Timestamp
和
Value
,因为它们是[DataContract]的[DataMember]值。
如果你知道要找什么,这相对简单。如果有任何不清楚的地方,请告诉我,我会尽力澄清。
谢谢。