我创建了一个我想在 WCF 调用中传递的对象……但在 ServiceReference1 中……这个对象被重新定义……有没有办法在任何地方都使用原始对象……似乎人们已经这样做了,但我不能弄清楚我做错了什么。
该对象用作服务合同中函数的参数。
[OperationContract(IsOneWay = true)]
void UpdateInformation(MyObject myObject);
当我尝试从客户端调用函数时出现的错误是“参数 1:无法从 'MyNameSpaceDTO.MyObject' 转换为 'MyNameSpace.ServiceReference1.MyObject'”</p>
该对象位于它自己的类库 dll 中,并标有 [DataObject] 和 [DataMember] 属性。
namespace MyNameSpaceDTO
{
[DataContract]
public class MyObject
{
[DataMember]
public string Name { get; set; }
….
但是,在将服务参考添加为之后,也会在 Reference.cs 中结束:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="MyObject", Namespace="http://schemas.datacontract.org/2004/07/MyNameSpaceDTO")]
[System.SerializableAttribute()]
public partial class MyObject : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string NameField;
...
此外,我在“添加服务参考”的“高级”部分中确实设置了以下内容:
[x] 在引用的程序集中重用类型
(o) 在所有引用的程序集中重用类型