我很難動態使用反射,例如。查詢.exe文件,而不需要爲每個希望查詢的程序集添加引用。使用反射動態查詢程序集
因此,舉例來說,下面的代碼是獲取類的一個常規方法,然後進行檢查。
AssemblyName assembly_name = new AssemblyName("Name");
問題是沒有將參數添加到代碼中,但代碼需要直接引用新組件來檢查。
歡迎任何建議。
我很難動態使用反射,例如。查詢.exe文件,而不需要爲每個希望查詢的程序集添加引用。使用反射動態查詢程序集
因此,舉例來說,下面的代碼是獲取類的一個常規方法,然後進行檢查。
AssemblyName assembly_name = new AssemblyName("Name");
問題是沒有將參數添加到代碼中,但代碼需要直接引用新組件來檢查。
歡迎任何建議。
這聽起來像你真的只是想在執行時加載程序集。看看Assembly.Load
和Assembly.ReflectionOnlyLoad
。
我不太清楚「查詢」是什麼意思。如果你想知道如何使用反射創建從裝配的實例,這裏有一個例子:
// From within the current assembly
public CartesianType CreateInstance(string fullyQualifiedClassName)
{
Assembly assembly = Assembly.GetExecutingAssembly();
Type target = assembly.GetType(fullyQualifiedClassName, true, true);
return (CartesianType)Activator.CreateInstance(target);
}
// From an external assembly already referenced in your project
public SomeClass CreateInstance(string fullyQualifiedClassName)
{
Assembly assembly = Assembly.GetAssembly(typeof(SomeClass));
Type target = assembly.GetType(fullyQualifiedClassName, true, true);
return (SomeClass)Activator.CreateInstance(target);
}
其他所有方法必須使用Load
或LoadFile
,LoadFrom
等
也許你正在尋找像Cecil。這是一個庫(在Windows和其他平臺上使用),它允許查詢的元數據,而不需要解決的所有引用。
不知道你的「查詢」 –
指的是我希望我的exe文件,以便能夠對不同的內置組件的這樣的查詢運行是指我的參數發送到選擇例如不同的組件。 – MaxSan
請顯示一些代碼......你的目標究竟是什麼?什麼不工作?任何錯誤消息/異常? – Yahia