я следующий класс контракта данных для моей службы WCF:значения по умолчанию WCF Service
[DataContract(Name = "MyClassDTO")]
public class MyClass
{
private string name = "Default Name";
[DataMember]
public string Name
{
get { return name; }
set { name = value; }
}
}
Когда я использую Visual Studio Добавить Service Reference функцию для генерации WCF Service Reference генерируемого DataContract выглядит примерно так:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "MyClassDTO", Namespace = "xxx")]
[System.SerializableAttribute()]
public partial class MyClassDTO : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
{
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string NameField;
[System.Runtime.Serialization.DataMemberAttribute()]
public string Name
{
get
{
return this.NameField;
}
set
{
if ((object.ReferenceEquals(this.NameField, value) != true))
{
this.NameField = value;
this.RaisePropertyChanged("Name");
}
}
}
}
Это означает, что значение по умолчанию «по умолчанию название» теряется и происходит следующее:
MyClassDTO mcdto = new MyClassDTO();
serviceClient.DoSomething(mcdto);
[OperationContract]
void DoSomething(MyClass mc){
mc.Name //<-- == null but I want it to be "Default Name"
}
Есть ли способ настроить контракт данных таким образом, чтобы определенное значение по умолчанию «Имя по умолчанию» не потерялось?
Дополнительная информация: Я использую ссылку на службу без повторного использования типов в ссылочных assemblys, например, на стороне клиента класс MyClass DTO генерируется не известно о стороне сервера класса MyClass
Да с сервером направления -> клиент работает отлично. но в направлении клиент -> сервер он не работает. Обратите внимание, что на клиентском сайте класс DataContract MyClassDTO является сгенерированным, который используется только на стороне клиента.Клиент не знает MyClass, и серверная сторона не знает о классе MyClassDTO – Fabiano