這擴展了我之前在this問題中提出的問題。我可以使用Type.GetType(mystring)根據我傳遞的字符串返回一個類型。問題是我想確定的類型是在不同的程序集中。C# - 如何返回一個類型的字符串,其中類型駐留在不同的程序集中
如何根據字符串返回類型,其中類型駐留在不同的程序集中。
編輯:我有一個接受字符串的方法,該字符串是我想要返回的類型。如果可能,我不想將程序集硬編碼到方法中...
這擴展了我之前在this問題中提出的問題。我可以使用Type.GetType(mystring)根據我傳遞的字符串返回一個類型。問題是我想確定的類型是在不同的程序集中。C# - 如何返回一個類型的字符串,其中類型駐留在不同的程序集中
如何根據字符串返回類型,其中類型駐留在不同的程序集中。
編輯:我有一個接受字符串的方法,該字符串是我想要返回的類型。如果可能,我不想將程序集硬編碼到方法中...
您需要知道類型所在的程序集,以便可以訪問該程序集。
一旦你有了,你可以使用System.Reflection組件來得到你想要的。
你可以指定程序集假設它已經被加載到應用程序域:
var stringType = Type.GetType("System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", true);
如果不是,你可能需要先加載該程序集:
var myType = Assembly.LoadFrom(@"c:\work\MyAssembly.dll").GetType("Foo.Bar", true);
http://msdn.microsoft.com/en-us/library/y0cd10tb.aspx
類似於
Type t = Assembly.Load("myassembly").GetType("myType");
Type.GetType(...)
可以做到這一點,你就必須在名稱空間限定的類型名稱傳遞:http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx
使用完全限定的程序集名稱:
這將讓該類型ViewPage
在System.Web.Mvc組裝:
Type.GetType(System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35)