我有一个引用域项目的asp.net Web项目.
在web项目中,我想使用反射从域项目创建一个类的实例,但我总是得到null(Nothing,在VB中).
注意:我使用的是非完全限定的类名,并且希望在MSDN似乎指示的情况下执行搜索(在程序集层面)
Dim myType为Type = Type.GetType("MetricEntity")'//产生Nothing(Null)
'// lets try this
Dim WasFound As Boolean = False
For Each ObjectType In Me.GetType.Assembly.GetExportedTypes
If ObjectType.Name = theClassName Then
WasFound = True
Exit For
End If
Next
Run Code Online (Sandbox Code Playgroud)
这个问题的答案似乎通常是:
Dim myType as Type = Type.GetType("System.Linq.Enumerable, System.Core, "
+ "Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"));
Run Code Online (Sandbox Code Playgroud)
但我没有看到必须硬编码版本号的逻辑(或者必须放在配置文件中)....所以如果版本发生变化会发生什么,我忘了在反射代码中更新它.... .是否可以执行GetType,忽略Version,Culture和PublicKeyToken?