0
DLLファイルが存在するかどうかを確認し、存在する場合はDLLにアクセスするコードを実行しますが、 DLLファイルが実行されず、例外がスローされますか?C#.NET DLLファイルが存在する場合にのみコードを実行することは可能ですか?
DLLファイルが存在するかどうかを確認し、存在する場合はDLLにアクセスするコードを実行しますが、 DLLファイルが実行されず、例外がスローされますか?C#.NET DLLファイルが存在する場合にのみコードを実行することは可能ですか?
アセンブリの存在を確認し(File.Exist)、ファイルが見つかった場合は、そのアセンブリから型のインスタンスを作成し、そのアセンブリのメソッドを呼び出します。
このような何か:
var assemblyLocation = "someLocation";
var methodToRun = "SomeMethod";
if (File.Exists(assemblyLocation))
{
var assembly = Assembly.LoadFile(assemblyLocation);
var instanceOfType = assembly.CreateInstance("SomeType");
if (instanceOfType != null) {
var methodInfo = instanceOfType.GetType().GetMethod(methodToRun);
if (methodInfo != null) {
methodInfo.Invoke(instanceOfType, null);
}
}
}
もちろんこの缶は、作成したオブジェクトの種類(クラスまたはインタフェース)にアクセスできるかどう改善されるので、あなたは、メソッドを実行するためにリフレクションを使用する必要はありません。
var assemblyLocation = "someLocation";
if (File.Exists(assemblyLocation))
{
var assembly = Assembly.LoadFile(assemblyLocation);
var instanceOfType = assembly.CreateInstance("SomeType") as SomeType;
if (instanceOfType != null) {
instanceOfType.SomeMethod();
}
}
マネージド
または管理対象外:このように
? –