2010-12-20 9 views
4

私はオブジェクトをjsonに変換してオブジェクトに戻すためにJson.Netライブラリを使用しています。オブジェクトのインスタンスを作成する方法は?

public interface IGoods 
{ 
    List<IPen> Pens { get; set; } 
    List<IPencil> Pencils{ get; set; } 
    void Deserialize(String json); 

} 

実装::私が得た

new public void Deserialize(String json) 
    { 
     JsonConvert.DeserializeObject<Goods>(json); 
    } 

明らかにエラーがある:タイプProject.IPenのインスタンスを作成できませんでした

私はインターフェイスを持っています。型はインタフェースまたは抽象クラスであり、インスタンス化することはできません。

どのようにこのエラーを解決できますか?

ありがとうございます!

+0

の可能重複[?JSON.NET - インターフェイスインスタンスのコレクションをデシリアライズする方法](http://stackoverflow.com/questions/15880574/json-net-how-to-deserialize-collection-of-interface-instances) – nawfal

答えて

0

IPENはインターフェースではなく、それができない意味クラスであり、インスタンス化されます。基本的に必要なのは、IPenインターフェースを実装するクラスです(Penと呼ぶ)。これで、Json文字列のIPenをPenで置き換えることができ、Json.Netがオブジェクトをインスタンス化できるようになります。

だけ明確にすることが、自分のペンのクラスは、次のようになります。

public class Pen: IPen 
{ 
//Interface implementation here. 
} 
関連する問題