Làm cách nào để xác định DataContract cho các lớp trừu tượng trong WCF?Sử dụng WCF với các lớp trừu tượng
Tôi có một lớp "Người" mà tôi liên lạc thành công bằng WCF. Bây giờ tôi thêm một lớp mới "Foo" được tham chiếu từ Person. Tất cả vẫn tốt. Nhưng khi tôi làm cho Foo trừu tượng và định nghĩa một lớp con thay vì nó không thành công. Nó thất bại ở phía máy chủ với một CommunicationException, nhưng điều đó không thực sự cho tôi biết nhiều.
lớp đơn giản của tôi làm cho thử nghiệm:
[DataContract]
public class Person
{
public Person()
{
SomeFoo = new Bar { Id = 7, BaseText = "base", SubText = "sub" };
}
[DataMember]
public int Id { get; set; }
[DataMember]
public Foo SomeFoo { get; set; }
}
[DataContract]
public abstract class Foo
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string BaseText { get; set; }
}
[DataContract]
public class Bar : Foo
{
[DataMember]
public string SubText { get; set; }
}
Hoàn hảo. Cảm ơn nhiều! –