當前我正在使用反射來搜索我的程序集中實現接口的類,然後檢查這些類的名稱以查看它是否與搜索的類匹配。使用反射在DLL中搜索c#
我的下一個任務是添加到此代碼的方式來搜索目錄中的DLL文件,我唯一的提示是,我可以使用「System.Environment.CurrentDirectory」。我還需要考慮到並非所有DLL都包含.net程序集的事實。
任何人都可以推薦從哪裏開始呢?
IInstruction instruction = null;
string currentDir = Environment.CurrentDirectory;
var query = from type in Assembly.GetExecutingAssembly().GetTypes()
where type.IsClass && type.GetInterfaces().Contains(typeof(IInstruction))
select type;
foreach (var item in query)
{
if (opcode.Equals(item.Name, StringComparison.InvariantCultureIgnoreCase))
{
instruction = Activator.CreateInstance(item) as IInstruction;
return instruction;
}
}
opcode是一個類im搜索的名稱。
您可以使用[this](http://stackoverflow.com/a/9991947/477878)作爲起點,當然指向您自己的目錄而不是框架程序集dir。 –
@JoachimIsaksson你能否更詳細地解釋你的答案,甚至可以舉個例子?我可以使用 –