[DataContract]
および[DataMember]
要素に使用する名前空間が見つかりません。私が見つけたものによると、それは以下を追加することで十分であるべきであるように思われます、しかし私の場合ではそうではありません。
using System;
using System.Runtime.Serialization;
これが私のコードの抜粋です。
using System;
using System.Runtime.Serialization;
namespace MyNamespace {
[DataContract]
public class Tuple<T1, T2> {
// A custom implementation of a Tuple
//...
//...
}
}
そして私が得るエラー:
型または名前空間名 'DataContract'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
正しい名前空間を使用していませんか?
DataContractAttribute
クラスはSystem.Runtime.Serialization
名前空間にあります。
System.Runtime.Serialization.dll
への参照を追加する必要があります。そのアセンブリは、デフォルトでは参照されません。プロジェクトに参照を追加するには、ソリューションエクスプローラーで[参照設定] - > [参照の追加]を選択し、手動でアセンブリ参照を追加します。
http://msdn.Microsoft.com/ja-jp/library/system.runtime.serialization.datacontractattribute.aspx
DataContractAttributeはSystem.Runtime.Serialization名前空間にあり、System.Runtime.Serialization.dllを参照する必要があります。それは.Net> = 3でのみ利用可能です
[DataContract]および[DataMember]属性は、System.ServiceModel.dllにあるSystem.ServiceModel名前空間にあります。
System.ServiceModelは、SystemおよびSystem.Runtime.Serialization名前空間を使用してデータメンバーをシリアル化します。
.NET 4.0フレームワークのビジュアルスタジオでは、
System.Runtime.Serialization
を検索します。using System.Runtime.Serialization
を使うことができます。そしてエラーは表示されません。まず、モデルに参照を追加してから、コードでそれらを使用します。追加する必要がある参照が2つあります。
system.ServiceModelを使用します。
System.Runtime.Serializationを使用します。
その後、この問題は私のプログラムで解決されました。この答えがあなたのお役に立てばと思っています。ありがとう。
参照にC:¥Program Files(x86)¥Reference Assemblies¥Microsoft¥Framework.NETFramework¥v4.0¥System.Runtime.Serialization.dllを追加してこの問題を解決しました。