0

UI生成の一部をバックエンドにオフロードし、それをクライアントにストリーミングすることにしました。これにより、クライアントを再デプロイせずにUIを変更できるようになります。

簡単なはずです。サーバー側:

  string controlToStream = XamlWriter.Save(rootControl);

そしてクライアント側で:

  var stringReader = new StringReader(value);
  var xmlTextReader = new XmlTextReader(stringReader);
  var control = XamlReader.Load(xmlTextReader);

しかし、チェーンに本格的なWPFアプリを導入せずに、サーバー上のWPFにアクセスするにはどうすればよいですか?サーバーコードは典型的なRPCタイプのコードのチャンクであり、リクエストが着信するたびに実行されます。コンソールアプリでXAML /コントロールの作成に軽量でアクセスする方法はありますか?

ありがとう!

今後の参考のためのソリューションアップデート:

  1. コンソールアプリでWPFdll(PresentationCore、Windowsbase、PresentationFramework、私の場合はSystem.Xaml)への参照を追加します

  2. STAスレッドからのみそれらを呼び出すようにしてください。ParallelExtensionsExtrasのStaTaskSchedulerが便利です:http://blogs.msdn.com/b/pfxteam/archive/2010/04/07/9990421.aspx

4

1 に答える 1

1

「軽量」とは正確にはわかりませんが、コンソールアプリケーションからすべてのWPFライブラリにアクセスできます。

何らかの理由でそれらを使用したくない場合は、XAMLを通常のXMLとして扱い、XMLライブラリのみを使用して生成することができます。それはおそらくより多くの仕事になるでしょうが。

于 2012-05-08T08:02:21.323 に答える