2015-12-17 26 views
11

'da polimorfik tür belirtme MVC'nin önceki sürümlerinde "TypeNameHandling = TypeNameHandling.Auto" kullanabilirim. MVC6 yılında , benim WebAPI olarak sınıfASP.NET mvc 6

public class BaseClass { 
    public string Id {get;set;} 
} 
public class Foo : BaseClass { 
    public string Name {get;set;} 
    public string Address {get;set;} 
} 
public class Bar : BaseClass { 
    public string Account {get;set;} 
    public string Password {get;set;} 
} 

aşağıdakilere sahip JSON sonuç aşağıdaki

[ 
    {Id: "1", Name: "peter", Address: "address1"}, 
    {Id: "2", Account: "mary", Password: "1234"} 
] 

olacak Ama şu sonucu istiyorum:

[ 
    {$type: "Foo", Id: "1", Name: "peter", Address: "address1"}, 
    {$type: "Bar", Id: "2", Account: "mary", Password: "1234"} 
] 
+0

Şuanda bir hata var gibi görünüyor. Burada bir dosya: https://github.com/aspnet/Mvc/issues/3782 –

+0

sizin api kodunuzu gönderebilir misiniz –

cevap

1

Yeni ekleyebilir alanında: , BaseClass ürününde ve kurucuda başlat:

public class BaseClass { 
    public string Id {get;set;} 

    public readonly string type; 
    public BaseClass() 
    { 
     type = this.GetType().Name; 
    } 
} 

Foo sınıfı örneklerinde, Bar - "Bar" da "Foo" olacaktır.