문제

예제 코드를 켜고 있습니다 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월 코드 생성을위한 자체 구현이 있습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top