2016-12-15 137 views
0


從控制檯應用程序中獲得Web應用程序組件的信息,我需要得到控制器/操作方法名從控制檯應用程序MVC Web應用程序

的列表。

所以我用反射來做到這一點。
我引用的Web應用程序的.dll控制檯應用程序。
但我無法從控制檯應用程序源獲取Web應用程序的程序集信息。
如何通過反射

var check = AppDomain.CurrentDomain.GetAssemblies(); 
var assembly = AppDomain.CurrentDomain.GetAssemblies() 
.First(x =>x.ManifestModule.Name == "RedStar.WebApp.dll"); 

拋出這個exceptipn'System.InvalidOperationException「序列中沒有匹配的元素」

回答

0

組件不加載,直到它們被使用 - 所以,即使你已經在你的項目中,沒有按AppDomain.CurrentDomain.GetAssemblies()引用的組件不包括它(還)。

您必須使用Assembly webapp =Assembly.Load("RedStar.WebApp")才能顯式加載程序集。

注意,裝載組件這種方式使用集名稱而不是文件名 - 您可以使用Assembly.LoadFrom如果要加載一個特定的文件,但是這可能有一些unwanted side effects

+0

我只是嘗試和工作。謝謝 – mrkiyak