tôi có 2 lớp:đèo đối tượng với tài sản phức tạp với dịch vụ web
public class testClass1
{
public string Name { get; set; }
public testClass2 testClass2Object { get; set; }
}
public class testClass2
{
public testClass2() { }
public testClass2(int i) { TestProperty = i; }
public int TestProperty { get; set; }
}
và tôi muốn trở về đối tượng đầu tiên lớp với webMethod
:
[WebMethod]
public testClass1 testMethod()
{
testClass1 test = new testClass1();
test.Name = "stackoverflow";
test.testClass2Object = new testClass2(2);
return test;
}
nhưng tôi không nhận được các giá trị của testClass2
thuộc tính từ đối tượng testClass1
.
Tôi đã thử chú thích [Serializable] [XmlInclude(typeof(testClass2))]
nhưng không có gì thay đổi. Bất kỳ đề xuất?
Điều gì xảy ra nếu bạn loại bỏ hàm tạo 'công thức testClass2 (int i)'? Và nếu bạn thay đổi khai báo thành 'public testClass2 (int testProperty)' thì sao? (Tôi yêu cầu thứ hai bởi vì tôi biết tên thực tế của tham số ctor có thể ảnh hưởng đến JSON serialization, không chắc chắn nếu nó sẽ ảnh hưởng đến serialization khác mặc dù). –
@Matthew Watson Đã loại bỏ hàm tạo và giờ nó hoạt động nhờ. – pepela
@Matthew Watson Tôi không thể có hàm tạo với tham số nếu tôi muốn gửi đối tượng của nó? – pepela