DataContractResolver クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
シリアル化と逆シリアル化の間に、 xsi:type 表現との間で型を動的にマッピングするためのメカニズムを提供します。
public ref class DataContractResolver abstract
public abstract class DataContractResolver
type DataContractResolver = class
Public MustInherit Class DataContractResolver
- 継承
-
DataContractResolver
- 派生
例
次の例は、 DataContractResolverからクラスを派生させる方法を示しています。 作業中のサンプルについては、 DataContractResolver に関するページを参照してください。
class MyDataContractResolver : DataContractResolver
{
private Dictionary<string, XmlDictionaryString> dictionary = new Dictionary<string, XmlDictionaryString>();
Assembly assembly;
// Definition of the DataContractResolver
public MyDataContractResolver(Assembly assembly)
{
this.assembly = assembly;
}
// Used at deserialization
// Allows users to map xsi:type name to any Type
public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
{
XmlDictionaryString tName;
XmlDictionaryString tNamespace;
if (dictionary.TryGetValue(typeName, out tName) && dictionary.TryGetValue(typeNamespace, out tNamespace))
{
return this.assembly.GetType(tNamespace.Value + "." + tName.Value);
}
else
{
return null;
}
}
// Used at serialization
// Maps any Type to a new xsi:type representation
public override bool TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, out XmlDictionaryString typeName, out XmlDictionaryString typeNamespace)
{
string name = type.Name;
string namesp = type.Namespace;
typeName = new XmlDictionaryString(XmlDictionary.Empty, name, 0);
typeNamespace = new XmlDictionaryString(XmlDictionary.Empty, namesp, 0);
if (!dictionary.ContainsKey(type.Name))
{
dictionary.Add(name, typeName);
}
if (!dictionary.ContainsKey(type.Namespace))
{
dictionary.Add(namesp, typeNamespace);
}
return true;
}
}
注釈
開発者は、ネットワーク経由で送信されるデータに注意する必要があります。 トランスポートまたはメッセージのセキュリティを使用して、そのデータをセキュリティで保護できます。 詳細については、「セキュリティ」を参照してください。
Warning
シリアル化される情報が完全に確実である場合にのみ、 DataContractResolver を使用します。 悪意のある種類は、予期しない動作を引き起こす可能性があります。
コンストラクター
| 名前 | 説明 |
|---|---|
| DataContractResolver() |
DataContractResolver クラスの新しいインスタンスを初期化します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ResolveName(String, String, Type, DataContractResolver) |
逆シリアル化中に指定した |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
| TryResolveType(Type, Type, DataContractResolver, XmlDictionaryString, XmlDictionaryString) |
シリアル化中にデータ コントラクト型を |