codedom을 사용하여 vb.net 속성을 작성합니다
문제
예제 코드를 켜고 있습니다 MSDN:
이것
' Declares a type.
Dim type1 As New CodeTypeDeclaration("Type1")
' Declares a constructor.
Dim constructor1 As New CodeConstructor
constructor1.Attributes = MemberAttributes.Public
type1.Members.Add(constructor1)
' Declares an integer field.
Dim field1 As New CodeMemberField("System.Int32", "integerField")
type1.Members.Add(field1)
' Declares a property.
Dim property1 As New CodeMemberProperty
property1.Name = "integerProperty"
property1.Type = New CodeTypeReference(GetType(Integer))
' Declares a property get statement to return the value of the integer field.
property1.GetStatements.Add(New CodeMethodReturnStatement(New CodeFieldReferenceExpression(New CodeThisReferenceExpression, "integerField")))
' Declares a property set statement to set the value to the integer field.
' The CodePropertySetValueReferenceExpression represents the value argument passed to the property set statement.
property1.SetStatements.Add(New CodeAssignStatement(New CodeFieldReferenceExpression(New CodeThisReferenceExpression, "integerField"), New CodePropertySetValueReferenceExpression))
type1.Members.Add(property1)
Dim dump As New VBCodeProvider
Dim gen As Compiler.ICodeGenerator = dump.CreateGenerator
Dim opt As New Compiler.CodeGeneratorOptions
gen.GenerateCodeFromType(type1, Console.Out, opt)
생성해야합니다
Public Class Type1
Private integerField As Integer
Public Sub New()
MyBase.New()
End Sub
Private Property integerProperty() As Integer
Get
Return Me.integerField
End Get
Set(ByVal Value As Integer)
Me.integerField = value
End Set
End Property
End Class
그러나 나는 그것이 세트 메소드에 매개 변수를 생성하는 것을 보지 못한다.
Set
Me.integerField = value
End Set
예제 코드에 이미 예제 출력과 일치하도록 속성의 이름을 지정하기 위해 이미 예제 코드에 비트를 추가해야한다는 점을 감안할 때,이를 일으키는 세부 사항이 없다고 생각하지만 추적 할 수없는 것 같습니다. 코드가 컴파일하는 동안 매개 변수를 수동으로 추가하지 않고 속성을 사용할 수 없으므로 목적을 다소 물리칩니다. 무엇이 빠졌는지 아십니까?
해결책
주석 #3 on 이 DevCity 기사 중요하지 않아야한다고 제안하지만 나는 그것을 알고 있습니다. 반사기 당신이 기대하는대로 행동합니다 5월 코드 생성을위한 자체 구현이 있습니다 ...
제휴하지 않습니다 StackOverflow