0

我有一个用我的实体名称填充的 ListBox,即 A1AllocationHelp1Entity

在选择时,我需要传递该字符串名称以获取 EntityBase2 类型。

我可以使用反射得到它:

Public Function CreateEntity(ByVal entityName As String) As EntityBase2
    Dim myAssembly = Assembly.LoadFrom(DALFileName)
    Dim assemblyName = Split(dynamicAssembly.FullName, ",")(0)
    Dim myEntityName = assemblyName & ".EntityClasses." & entityName
    Dim handle = Activator.CreateInstance(assemblyName, myEntityName)
    Dim entity = CType(handle.Unwrap(), EntityBase2)
    Return entity
End Function

但是如果我有 llblgen 生成的类型,我希望能够以某种方式实例化它而不诉诸反射。

有什么办法可以做到吗?

4

1 回答 1

0

所有的反射代码都可以用一行替换

Return GeneralEntityFactory.Create( _
    CType(System.Enum.Parse(GetType(EntityType), entityName), EntityType))

这返回相同的类型,是我正在寻找的答案。

于 2013-03-28T15:54:03.533 回答