He siguientes clases contrato de datos para mi servicio WCF:valores por defecto servicio WCF
[DataContract(Name = "MyClassDTO")]
public class MyClass
{
private string name = "Default Name";
[DataMember]
public string Name
{
get { return name; }
set { name = value; }
}
}
Cuando uso de Visual Studio Añadir Servicio de referencia de funciones para generar una referencia de servicio WCF la generada DataContract se ve algo como esto:
[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");
}
}
}
}
Eso quiere decir, el valor predeterminado "Nombre predeterminado" se pierde y el comportamiento siguiente:
MyClassDTO mcdto = new MyClassDTO();
serviceClient.DoSomething(mcdto);
[OperationContract]
void DoSomething(MyClass mc){
mc.Name //<-- == null but I want it to be "Default Name"
}
¿Existe alguna manera de configurar el contrato de datos de esa manera, que el valor predeterminado definido "Nombre predeterminado" no se pierda?
información adicional: I utilizar una referencia de servicio sin reutilización de tipos en assemblys referenciados, por ejemplo, en el lado del cliente se genera la clase MiClase DTO una no es consciente de la clase MyClass lado del servidor
Sí, con el servidor de dirección -> cliente esto funciona bien. pero en la dirección cliente -> servidor no funciona. Tenga en cuenta que en el sitio del cliente, la clase DataContract MyClassDTO es una generación que solo se utiliza en el lado del cliente.El cliente no conoce MyClass y el servidor no tiene conocimiento de la clase MyClassDTO – Fabiano