その場で仮想基本クラス関数をオーバーライドし、このオーバーライドされたメソッドをアプリケーションで使用したいと思います。基本的なサンプルクラスを書くと:
partial Class myBase
{
public myBase() {}
public virtual void DoStuff()
{
throw new Exception("this function is not overriden");
}
}
partial Class myDeriv : myBase
{
public myDeriv() {}
}
そして今、その場で myDeriv.DoStuff をオーバーライドしたいと思います。そこで、文字列コード ブロックを作成し、次を使用してコンパイルします。
CSharpCodeProvider.CompileAssemblyFromSource
方法。このdllをディスクに書き込んだ後、次を使用してロードしようとしました
Assembly.LoadFrom("onTheFly.dll");
しかし、アプリケーションはこのオーバーライドされた関数を見つけることができません。他のより良い解決策があれば、私もそれらを受け入れます..関数をその場でオーバーライドするだけです..
皆さん、ありがとうございました!