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 /コントロールの作成に軽量でアクセスする方法はありますか?
ありがとう!
今後の参考のためのソリューションアップデート:
コンソールアプリでWPFdll(PresentationCore、Windowsbase、PresentationFramework、私の場合はSystem.Xaml)への参照を追加します
STAスレッドからのみそれらを呼び出すようにしてください。ParallelExtensionsExtrasのStaTaskSchedulerが便利です:http://blogs.msdn.com/b/pfxteam/archive/2010/04/07/9990421.aspx