簡體   English   中英

使用反射動態查詢程序集

[英]Using reflection to dynamically query an assembly

我在動態使用反射方面遇到困難,例如。 查詢.exe文件,而無需為我要查詢的每個程序集添加引用。

因此,例如,下面的代碼是獲取保留的類然后進行檢查的常規方法。

AssemblyName assembly_name = new AssemblyName( "Name" ); 

問題不是在參數中添加參數,而是代碼需要直接引用要檢查的新程序集。

歡迎任何建議。

聽起來您實際上只是在嘗試在執行時加載程序集。 查看Assembly.LoadAssembly.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);
}

所有其他方法必須使用LoadLoadFileLoadFrom等。

也許您正在尋找類似Cecil的產品 它是一個庫(在Windows和其他平台上可用),可以查詢元數據而無需解析所有引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM