2

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

例如,假设我有一堂课

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

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

谢谢!

4

4 回答 4

3

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

于 2009-09-15T19:28:38.087 回答
3

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

于 2009-09-15T19:31:18.470 回答
1

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

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

于 2009-09-15T19:29:08.350 回答
1

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

对于挑剔者:)

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

于 2009-09-15T19:29:36.837 回答