2016-08-22 9 views
0

データを返すwebapiを作成しています。私は以下の製品/サブ製品クラスとハードコーディングデータを構築しました。私がAPIをテストすると、製品情報のみが返されます。子供用製品の言及はありません。私は何が欠けていますか?ここでは、コードは次のようになります。 POCOクラス:webApiがカスタムPOCOから関連するエンティティを返さない

public class Product 
{ 
    public Product() 
    { 

    } 
    public string ProductCode { get; set; } 
    public List<SubProduct> SubProducts { get; private set; } = new List<Domain.SubProduct>(); 
} 

public class SubProduct 
{ 
    public SubProduct() 
    { 
     Plans = new List<Plan>(); 
    } 
    public Product Product { get; set; } 
    public string SubProductCode { get; set; } 
} 

ウェブAPIコントローラコード:ブラウザで

public class OdsDataController : ApiController 
{ 
    public IHttpActionResult GetTestData() 
    { 
     List<Domain.Product> returnData = new List<Domain.Product>(); 
     returnData.Add(new Domain.Product { ProductCode = "123" }); 
     returnData.First().SubProducts.Add(new Domain.SubProduct { SubProductCode = "1255" }); 
     return Ok(returnData); 
    } 
} 

私は私が手にこのメソッドを打つ: http://localhost:56459/api/OdsData/gettestdata

[{ "製品コード": "123"}]

フィドラーでさえ、私はProductCodeだけを見る

なぜサブ製品情報が得られないのですか?何も分からないのですか? ありがとう D

答えて

0

私は分かりませんが、クラスにSerializable属性とDataContract属性を追加しなければなりませんでした。プロパティでDataMember属性を追加する必要がありました。それは期待どおりに働いた。 他に必要なコードは次のとおりです。

[Serializable] 
[DataContract] 
public class Product 
{ 
    public Product() 
    { 

    } 
    [DataMember] 
    public string ProductCode { get; set; } 
    [DataMember] 
    public List<SubProduct> SubProducts { get; private set; } = new List<Domain.SubProduct>(); 
} 
関連する問題