2015-12-17 5 views
11

以前のバージョンのMVCで "TypeNameHandling = TypeNameHandling.Auto"を使用することができました。 MVC6で 、私は私のWEBAPIでクラスASP.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;} 
} 

次き、JSONの結果は以下の

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

になります。しかし、私は次のような結果たい:

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

現在バグがあるようです。ここに提出:https://github.com/aspnet/Mvc/issues/3782 –

+0

あなたはあなたのAPIコードを投稿することができます –

答えて

1

あなたが新しい追加することができますがフィールド:タイプをBaseClassで作成し、コンストラクタで初期化します。

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

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

Fooクラスのインスタンスでは、Bar - "Bar"の "Foo"になります。

関連する問題