WPF アプリケーションでプラグインを使用できるようにしようとしています。私の理解では、追加のアプリ ドメインを作成する必要があります (必要ではありませんが、推奨されます)。
このため、起動時に App.xaml.cs で次のことを行っています。
private void LoadPlugins()
{
// Create and polish plugin app domain
AppDomain pluginAppDomain = AppDomain.CreateDomain("MyProject Plugin Container", null);
pluginAppDomain.UnhandledException += PluginAppDomain_UnhandledException;
//TODO: Load plugins from dlls
}
private void PluginAppDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Logger.FatalException("PluginAppDomain", e.ExceptionObject as Exception);
}
ただし、UnhandledException イベントをアタッチすると、例外が発生して失敗します。
アセンブリ 'MyProject、Version=1.0.0.0、Culture=neutral、PublicKeyToken=1337' のタイプ 'MyProject.App' は、シリアル化可能としてマークされていません。
問題は何ですか?