2009-09-15 1 views
2

인트로 검사를 사용하여 VB .NET에서 런타임에 동적으로 속성을 만드는 방법이 있습니까?VB.NET에서 런타임에 동적 속성 생성

내가 수업을 가지고 있다고 가정 해 보겠습니다.

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

런타임에 속성 표시 줄을 만드는 방법이 있습니까?

감사합니다.

답변

3

대답은 Reflection.Emit입니다. 코드 작성에 재미는 없지만 원하는 것을 수행합니다.

+0

이 링크는 "이 항목은 더 이상 제공되지 않습니다."라는 문구가 표시되며,이를 업데이트하려는 경우를 대비하여 – rogerdeuce

3

동적 변수 목록 만 원한다면 사전 개체를 클래스의 구성원으로 설정 한 다음 메서드를 사용하여 특정 사전 항목을 설정하거나 가져올 수 있습니다.

1

내 의견에 더 추가하면 회원 변수를 가져 오거나 설정할 수있는 클래스에 인덱서를 추가 할 수 있습니다.

편집 : 죄송합니다. 나는 vb.net에 인덱서가 없다는 것을 몰랐다.
하지만 여전히 인덱서처럼 작동 할 수있는 백업 사전을 사용하여 코드를 작성할 수 있습니다.

+0

+1 감사합니다. Larry –

1

불행히도 런타임에 클래스 구조를 변경하는 방법은 없습니다. 메타 데이터는 컴파일 타임에 고정되며 런타임에 변경되지 않고 실행됩니다. Nitpickers를 들어

:

이 100 % 사실이 아니다. 프로파일 링 및 ENC API를 사용하면 런타임에 메타 데이터의 구조를 변경할 수 있습니다. 그러나이 시나리오에는 실제로 적용 할 수 없습니다.