0
レガシーシステムを統合しており、DLLを呼び出すことによってそのAPIにアクセスする必要があります。現時点では、APIを呼び出す他の方法はありません。WPFの外部DLLからのブラウザの埋め込み404エラーの処理
そして、DLLショーでは、ファイルが見つからないというエラーをスローするスプラッシュ画面を表示しようとしています。
私は、DotPeekがAPIのDLLを逆コンパイルできなかったので、サンプルのソリューションでこの動作を再現することができました。
解決策。
エラーメッセージ。
アプリケーションコード。
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var dll = Assembly.LoadFile(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "WpfLibrary.dll"));
var type = dll.GetType("WpfLibrary.TestWindow");
var instance = Activator.CreateInstance(type);
object[] parameters = { };
instance.GetType().InvokeMember("Start2", BindingFlags.InvokeMethod, null, instance, parameters);
}
}
DLLコード。周り
public partial class TestWindow : Window
{
public TestWindow()
{
InitializeComponent();
}
public void Start2()
{
Show();
WebBrowser.Navigate(new Uri("file:///C:/aaaa.txt"));
}
}
簡単な仕事は、しかし、私はよりよい解決策を必要とする、WPFアプリケーションがインストールされるすべてのマシン上のファイルを作成することはできません、不足しているファイルを作成することです。
私の質問は、どうすればこのようなエラーを外部DLLから処理することができますか?エラーメッセージボックスが表示されないようにすれば十分です。
を試みることができる
/編集。私の場合、WebBrowserコントロールは例外をスローしません。 – Ignas
Hmmm、ok。そして、ファイルが存在しているかどうかを確認したり、あなたのDLLに例外をスローしたりすることはできません。 –
私はしたいですが、私はそのDLLをまったく制御できません...ちょうどコンパイルされたバイナリを受け取りました... – Ignas