serialisiert ich habe folgendes WCF Datacontract:Datacontract-Ausnahme. Kann nicht
[DataContract]
public class Occupant
{
private string _Name;
private string _Email;
private string _Organization;
private string _Badge;
public Occupant(string name, string badge, string organization)
{
Name = name;
Badge = badge;
Organization = organization;
}
public Occupant(string name, string badge)
{
Value = name;
Key = badge;
}
[DataMember]
public string Key
{
get { return _Name; }
set { _Name = value; }
}
[DataMember]
public string Value
{
get { return _Badge; }
set { _Badge = value; }
}
[DataMember]
public string Name
{
get { return _Name; }
set { _Name = value; }
}
[DataMember]
public string Email
{
get { return _Email; }
set { _Email = value; }
}
[DataMember]
public string Organization
{
get { return _Organization; }
set { _Organization = value; }
}
[DataMember]
public string Badge
{
get { return _Badge; }
set { _Badge = value; }
}
}
Wenn ich versuche, diesen Dienst für den Zugriff auf über Webbrowser (es gehostet wird unter IIS), erhalte ich diese Fehlermeldung:
System.Runtime.Serialization.InvalidDataContractException: Type 'MyNamespace.Occupant' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute.
Eine meiner Methoden gibt eine List
des Typs Occupant
zurück. Würde es das verursachen?
Trotz der Fehler, seine strittig, ob DCS braucht eigentlich überhaupt Konstruktor - siehe http://msdn.microsoft.com/en-us/magazine/cc163569.aspx und http://stackoverflow.com/ Fragen/178645/how-does-wcf-Deserialisierung-instanziate-Objekte-ohne-Aufruf-ein-Konstruktor – StuartLC
Brauchen wir einen öffentlichen parameterlosen Konstruktor? Oder private parameterlose Konstruktor wird auch funktionieren? – VCD
@ VCD Private parameterlosen Konstruktor funktioniert. Ich habe gerade versucht .Net Framework 4.5 –