在VB .NET中运行时构造动态属性

时间:2009-09-15 19:10:36

标签: .net vb.net dynamic properties introspection

有没有办法使用内省在VB .NET中运行时动态创建属性?

e.g。假设我有一个班级

Public Class Foo
   Public Property Bar() As String
       get 
           ...
       end get
      set(ByVal value As String)
          ...
      end set
End Class

有没有办法在运行时创建属性栏?

谢谢!

4 个答案:

答案 0 :(得分:3)

如果您只想要一个动态的变量列表,您始终可以将字典对象设置为类的成员,然后使用方法设置或获取特定的字典项。

答案 1 :(得分:3)

答案是Reflection.Emit。编码并不是很有趣,但可以做到你想要的。

答案 2 :(得分:1)

在我的评论中进一步添加,您可以为您的类添加一个索引器 - 这可以让您获取/设置成员变量。

编辑:对不起。我不知道vb.net没有索引器 但是仍然可以使用支持字典编写代码,这可以像索引器一样工作

答案 3 :(得分:1)

不幸的是,没有办法改变运行时类的结构。元数据在编译时是固定的,并且在运行时不会改变。

对于Nitpickers:)

这不是100%真实。分析和ENC API允许您在运行时更改元数据的结构。但这两种情况都不适用。