[英]Using reflection to dynamically query an assembly
我在動態使用反射方面遇到困難,例如。 查詢.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和其他平台上可用),可以查詢元數據而無需解析所有引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.