この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

XamlReader クラス

 

公開日: 2016年10月

XAML 入力を読み込んで、WPF の既定の XAML リーダーと、関連する XAML オブジェクト ライターを使用して、オブジェクト グラフを作成します。

名前空間:   System.Windows.Markup
アセンブリ:  PresentationFramework (PresentationFramework.dll 内)

System.Object
  System.Windows.Markup.XamlReader

public class XamlReader

名前説明
System_CAPS_pubmethodXamlReader()

XamlReader クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubmethodCancelAsync()

保留中の非同期の読み込み操作がある場合は、現在の非同期ロード操作を中止します。

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

オブジェクトが、ガベージ コレクションによって収集される前に、リソースの解放とその他のクリーンアップ操作の実行を試みることができるようにします。(Object から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodSystem_CAPS_staticGetWpfSchemaContext()

返します。、 XamlSchemaContext の WPF スキーマ コンテキストの設定を表すオブジェクト、 XamlReaderです。

System_CAPS_pubmethodSystem_CAPS_staticLoad(Stream)

指定した XAML 入力を読み取り Stream 返します、 Object 、対応するオブジェクト ツリーのルートです。

System_CAPS_pubmethodSystem_CAPS_staticLoad(Stream, ParserContext)

指定した XAML 入力を読み取り Stream し、対応するオブジェクト ツリーのルートを表すオブジェクトを返します。

System_CAPS_pubmethodSystem_CAPS_staticLoad(XamlReader)

指定されたを通じて XAML 入力を読み取り XamlReader し、対応するオブジェクト ツリーのルートを表すオブジェクトを返します。

System_CAPS_pubmethodSystem_CAPS_staticLoad(XmlReader)

指定した XAML 入力を読み取り XmlReader し、対応するオブジェクト ツリーのルートを表すオブジェクトを返します。

System_CAPS_pubmethodLoadAsync(Stream)

指定した XAML 入力を読み取り Stream し、対応するオブジェクト ツリーのルートを返します。

System_CAPS_pubmethodLoadAsync(Stream, ParserContext)

指定した XAML 入力を読み取り Stream し、対応するオブジェクト ツリーのルートを返します。

System_CAPS_pubmethodLoadAsync(XmlReader)

指定した XAML 入力を読み取り XmlReader し、対応するオブジェクト ツリーのルートを返します。

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_pubmethodSystem_CAPS_staticParse(String)

指定されたテキスト文字列内の XAML 入力を読み取り、指定したマークアップのルートに対応するオブジェクトを返します。

System_CAPS_pubmethodSystem_CAPS_staticParse(String, ParserContext)

指定されたテキスト文字列内の XAML マークアップを読み取ります (、指定した ParserContext) し、指定したマークアップのルートに対応するオブジェクトを返します。

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。(Object から継承されます。)

名前説明
System_CAPS_pubeventLoadCompleted

非同期の読み込み操作の完了時に発生します。

同期 Load メソッドは静的では、非同期 LoadAsync メソッドが静的なもののインスタンスを必要と、 XamlReader クラスを使用します。

出力、 Load メソッドが作成されたオブジェクト ツリーまたはオブジェクト グラフのルート オブジェクトを表す 1 つのオブジェクト。 オブジェクトによって作成されるグラフ XamlReader 通常実行時に WPF アプリケーションの既存のオブジェクト ツリーに追加します。 それ以外の場合、新しいオブジェクト グラフは、WPF アプリケーション モデルのため切断されたと見なされます。 つまり、表示できない、WPF アプリケーションの主要なオブジェクトのツリーに適用手法のいずれかのオブジェクト ツリーとしてアクセスを使用することはできません (Api など FindName, 、LogicalTreeHelper, 、VisualTreeHelper)。 オブジェクト ツリーの概念の詳細については、次を参照してください。 WPF のツリーします。

XamlReader 次の主なシナリオをサポートしています。

  • クローン化/オブジェクト ファクトリ: 追加機構せず、参照型一般に含めることができません WPF オブジェクト ツリー内の 1 つ以上の位置にします。 (共有のサポートを提供または WPF で再利用できるその他のメカニズムの例に基づくオブジェクトが含まれる Freezable, などの一般的に共有できるオブジェクトのサポートまたは Brush からアイテムとして参照されている、 ResourceDictionary.) 使用してオブジェクトをシリアル化になっているオブジェクトのクローンを作成する方法の 1 つのオブジェクト ツリーは XamlWriter.Saveです。 文字列を使用するシリアル化された入力としての呼び出しを Load, 、ストリームまたは XmlReader の仲介役として。

  • だけ時の情報に基づくオブジェクトのコンストラクト: 多くの場合、遅延バインディングまたはユーザー指定の入力が既存のオブジェクトの状態を変更するには、他の方法があります。 たとえば、1 つ以上のプロパティを設定する同じ値を使用またはデータ バインディングを使用できます。 シナリオを作成するオブジェクトの種類ものみ確定またはユーザーの操作で実行時にした場合の文字列を作成することによりこのようなオブジェクトを作成しが Load 入力が便利な方法では多くの場合。

  • 既存のリソースの手法を使用して: Stream 型が頻繁にで使用フレームワークまたはテクノロジの他のアプリケーションの境界を越えてデータまたはオブジェクトを転送するためやのような状況です。 使用して、 Stream 格納または最終的に使用して、アプリケーションの一部としてオブジェクトを作成する XAML 形式のデータを取得するための技法です。

  • ドキュメントを固定: 、アプリケーションは、WPF アプリケーションのオブジェクト ツリーと UI に含めることのローカルまたはダウンロード済みの XPS ドキュメントを読み込む場合もあります。

System_CAPS_noteメモ

場合によって、このドキュメントでは、オブジェクト ツリーではなく、オブジェクト グラフについて説明します。 厳密な親子のリレーションシップが常にありません、実行時の WPF アプリケーションの実行時のオブジェクトのリレーションシップのオブジェクト グラフがより広く適用可能な用語であるため。 ただし、WPF では、2 つの異なるツリー概念化 Api も含まれるため (LogicalTreeHelper, 、VisualTreeHelper) WPF では、ほとんどの実際の場合に、ツリーの比喩を適切にも該当します。 XAML 言語の観点から、オブジェクト グラフは多くの場合、最適な見方をすると、XAML からオブジェクトを作成する方法は、XAML 言語そのものは必ずしも指定しないのでリレーションシップ ツリー構造に再度戻すヘルパー クラスの方法論です。

XAML は、オブジェクトのインスタンス化と実行を直接表すマークアップ言語です。 そのため、XAML で作成した要素、同じする機能があります (ネットワーク アクセス、ファイル システムの入出力、たとえば) システム リソースとの対話は、対応する生成コードします。

WPF サポートしています、 .NET セキュリティ フレームワーク コード アクセス セキュリティ (CAS)します。 つまり、この WPF インターネット ゾーンで実行されているコンテンツが実行のアクセス許可を制限します。 "Loose XAML"(コンパイルされない XAML のページと解釈の読み込み時に XAML ビューアーで) と XAML ブラウザー アプリケーション (XBAP) このインターネット ゾーンでは、通常実行して、同じアクセス許可セットを使用します。 ただし、完全に信頼されたアプリケーションに読み込まれた XAML では、ホスト アプリケーションのようにシステム リソースに対する同じアクセスがあります。 詳細については、次を参照してください。 WPF 部分信頼セキュリティします。

これらのステートメントの影響 XamlReader は、アプリケーションの設計がロードする場合、XAML に関する信頼性の決定を行う必要があります。 信頼されていない XAML を読み込む場合は、生成されたオブジェクト グラフを読み込む方法について、独自のサンド ボックス化手法を実装することを検討してください。

XamlReader 部分信頼コードから呼び出すこともできます。 この場合は、インターネット セキュリティ ゾーンは、コード アクセス セキュリティに対して適用されます。 読み込まれた XAML では何も情報がインターネット セキュリティ ゾーンで有効でない場合は、XAML の解析例外がスローされます。 [XBAP とプラットフォーム レベルでは、部分的に信頼をそれ以外の場合、 XamlReader 一部である、実行の明示的な部分的な信頼関係の呼び出しと同様の例外動作は同じを取得します。

XAML2009 などの言語機能が含まれているとします。 署名を使用することができます Load または Parse をこれらの機能を使用する XAML を読み込みます。 ただし、これらの言語機能が XAML マークアップ コンパイルする必要があるためサポートされていません (の XAML など、 ページ ビルド アクションでは、WPF アプリケーションの場合、または XAML ビルド アクションにマークアップ コンパイル タスクを含む)。

WPF の型と WPF テクノロジ一般に WPF の内部構造へのアクセスに依存している概念がサポートします。 たとえば、WPF 依存関係プロパティを実装する方法は、効率的な型メンバーの参照に関する内部の手法に依存します。 提供される Api の読み取りと書き込み、XAML でこれらの内部構造へのアクセスが有効になっている XamlWriterXamlReader から、 System.Windows.Markup 名前空間と PresentationFramework アセンブリ。 ただし、下位レベルの XAML リーダーと XAML ライターを System.Xaml アセンブリから (クラスに基づきます System.Xaml.XamlReader, 、System.Xaml.XamlWriter) WPF の内部構造へのアクセスはありません。 System.Xaml から任意の WPF 固有のアセンブリへの依存関係はありません。 WPF の内部構造にアクセスできなければ、System.Xaml リーダーとライターに正常に読み込むことができませんまたは型、または型での WPF 型に基づくすべての WPF を保存します。 具体的には、System.Xaml リーダーとライターは、WPF 依存関係プロパティがプロパティ ストア、または WPF でのスタイル、リソース ディクショナリ、およびテンプレートの使用方法の詳細をすべてのバックアップなどの概念を理解されません。 そのため、選択することがある場合。

  • WPF の型を読み込む XAML の BAML 形式はまったくしている場合や場合、は、PresentationFramework XAML リーダーと XAML ライターを使用します。

  • 任意の WPF 型または XAML の BAML 形式は、せずしてそのフレームワークに固有の上の理由から特定のテクノロジの別の XAML リーダーまたは XAML ライターの実装を使用しない場合は、System.Xaml XAML リーダーと XAML ライターを使用します。

XamlReader WPF フレームワーク レベル XAML パーサーの呼び出し可能な API サーフェイスです。 同じ基になる XAML パーサーが実行時の XAML を読み込み、対象とする WPF アプリケーションの解析も行い .NET Framework 3.0 と .NET Framework 3.5です。

対象としている場合は、 .NET Framework 4, 、外部 API、同じですが、実装のパーツが上に構築された、 .NET Framework 4 の XAML を解析技術とレポートの多くが向上される System.Xaml アセンブリに全般的な XAML の実装です。 対象とする .NET Framework 4 System.Xaml から報告された例外が取得されるように、実装の詳細と、参照として System.Xaml を追加が必要ですが型を定義するとは限りません。

次の例では、変換、 Button を使用して文字列に、 XamlWriter クラスです。 文字列は、再度読み込んで、 Button 、静的 using Load メソッドを XamlReader クラスです。

// Create the Button.
Button originalButton = new Button();
originalButton.Height = 50;
originalButton.Width = 100;
originalButton.Background = Brushes.AliceBlue;
originalButton.Content = "Click Me";

// Save the Button to a string.
string savedButton = XamlWriter.Save(originalButton);

// Load the button
StringReader stringReader = new StringReader(savedButton);
XmlReader xmlReader = XmlReader.Create(stringReader);
Button readerLoadButton = (Button)XamlReader.Load(xmlReader);

.NET Framework
3.0 以降で使用可能
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: