Estoy refacturando mi serialización XML, y pensé que probaría el DataContractSerializer. todo funciona sin problemas, hasta que se necesita para serializar esta clase:"Escriba no esperado", usando DataContractSerializer, pero es solo una clase simple, ¿no hay cosas divertidas?
using System;
using System.Runtime.Serialization;
namespace VDB_Sync.Model
{
[DataContract(Name="Konstant")]
public class Konstant : DataFelt
{
[DataMember]
private MySqlDbType mydataType;
[DataMember]
private object value;
public Konstant(string navn, MySqlDbType dataType, object value)
: base(navn, dataType, "*Konstant", false, false)
{
//this.navn = navn;
this.mydataType = dataType;
this.value = value;
if (navn.Contains("*Løbenummer"))
{
navn = "*Konstant: " + Convert.ToString(value);
}
}
public object Value
{
get
{
return value;
}
}
}
}
Es me dan esto:
Tipo 'VDB_Sync.Model.Konstant' con el nombre de contrato de datos 'Konstant: http://schemas.datacontract.org/2004/07/VDB_Sync.Model 'no se espera. Considere el uso de un DataContractResolver o agregue cualquier tipo no conocido de forma estática a la lista de tipos conocidos, por ejemplo, utilizando el atributo KnownTypeAttribute o agregándolos a la lista de tipos conocidos pasados a DataContractSerializer.
* La ayuda que he encontrado hasta ahora apunta a colecciones y tipos. Tengo una enumeración (MySqlDbType) en mi clase, pero entérate: incluso recibo el mismo error cuando no tengo ningún DataMembers declarado: -x Entonces, ¿qué está pasando aquí? ¿Qué me estoy perdiendo?
de remisión, así es como me serializado que, VDB_SessionController siendo la raíz: *
public void GemKonfig(VDB_SessionController session)
{
var settings = new XmlWriterSettings()
{
Indent = true,
IndentChars = "\t"
};
var writer = XmlWriter.Create(defaultFile, settings);
DataContractSerializer ser =
new DataContractSerializer(typeof(VDB_SessionController));
ser.WriteObject(writer, session);
writer.Close();
}
Impresionante - ¡funciona! Parece que necesito hacer esto con muchas clases, ¡gracias! – Julian
¿Cómo podría agregar esta decoración si la clase fue generada por el marco de la entidad? –
¡Genial! ¡Ahora también entiendo el propósito de la decoración de "KnownType"! ¡Gracias! – Homer1982