Gibt es einen Weg Generieren Sie C# automatische Eigenschaften mit Codedom oder vielleicht eine andere Reihe von Libreries, die ich verwenden kann?Generieren Sie C# automatische Eigenschaften mit Codedom
Antwort
CodeDom soll eine Art AST sein, die in mehrere Sprachen umgewandelt werden kann (in der Regel C# und VB. NETZ). Daher werden Sie in CodeDom keine Features finden, die syntaktischer Zucker einer bestimmten Sprache sind.
Nein, es ist nicht: C# CodeDom Automatic Property
Werfen Sie einen Blick in this article einige nützliche Beispiele zu bekommen
Tatsächlich sind die Kommentare darüber, dass es einfach ist, ein CodeSnippetStatement zu verwenden, irreführend, da CodeTypeDeclaration keine Anweisungsauflistung hat, zu der Sie diese Ausschnitte hinzufügen können.
Sie können die CodeSnippetTypeMember-Klasse für diesen Zweck verwenden.
Zum Beispiel:
CodeTypeDeclaration newType = new CodeTypeDeclaration("TestType");
CodeSnippetTypeMember snippet = new CodeSnippetTypeMember();
snippet.Comments.Add(new CodeCommentStatement("this is integer property", true));
snippet.Text="public int IntergerProperty { get; set; }";
newType.Members.Add(snippet);
Sie können dies tun: Nach How to: Create a Class Using CodeDOM
// Declare the ID Property.
CodeMemberProperty IDProperty = new CodeMemberProperty();
IDProperty.Attributes = MemberAttributes.Public;
IDProperty.Name = "Id";
IDProperty.HasGet = true;
IDProperty.HasSet = true;
IDProperty.Type = new CodeTypeReference(typeof(System.Int16));
IDProperty.Comments.Add(new CodeCommentStatement(
"Id is identity"));
targetClass.Members.Add(IDProperty);
Dies funktioniert nicht, da es zwei leere' set' und 'get' Methoden erzeugt, die resultieren beim Kompilieren von Fehlern. Der 'CodeSnippetTypeMember' (http://stackoverflow.com/a/23876973/191148) ist die Lösung –
- 1. C# CodeDom Automatische Eigenschaft
- 2. CodeDOM Mit VB.Net Eigenschaften
- 3. generieren Variablennamen von CodeDOM
- 4. C# Automatische Eigenschaften - Standardeinstellungen
- 5. C# Faule Loaded Automatische Eigenschaften
- 6. Hat Java automatische Eigenschaften?
- 7. Automatische Instanziierung von Referenztyp Automatische Eigenschaften
- 8. Eigenschaften und automatische Implementierungen
- 9. generieren Automatische Id IdGeneratorStrategy
- 10. Öffentlicher Getter, geschützter Setter mit CodeDOM
- 11. MonoTouch - Felder und automatische Eigenschaften
- 12. Eigenschaften programmgesteuert generieren
- 13. Problem mit Reflektor und automatische Eigenschaften
- 14. Code-Struktur mit CodeDom analysieren?
- 15. Wie generieren Sie einen Datenrahmen mit bestimmten Eigenschaften in QuickCheck
- 16. Haskell Generieren von Graphen mit QuickCheck-Eigenschaften
- 17. Warum unterstützen automatische C# -Eigenschaften keine Standardwerte wie VB 2010?
- 18. Codedom generischer Typ Constraint
- 19. Wie legen Sie einen Standardwert mit "kurzen Stil" Eigenschaften in VS2008 (automatische Eigenschaften) fest?
- 20. erstellen Enumeration mit .NET CodeDom
- 21. C# Automatische Eigenschaften - Warum muss ich "get; set;" schreiben?
- 22. Wie leer bekommen & set-Anweisungen CodeDOM in C#
- 23. C# 4.0: Ausdruck Bäume vs. CodeDom
- 24. Visual Studio Eigenschaften automatisch generieren
- 25. Entladen CodeDom-kompilierte Assembly
- 26. CodeDom - Rufen Sie eine generische Methode
- 27. Automatische GUI-Generierung in C#
- 28. Wie Sie eine neue Instanz eines Objekts in C# zurückgeben. Automatische Eigenschaften
- 29. Wie initialisiert man virtuelle automatische Eigenschaften?
- 30. Workaround für C# CodeDom verursachen Stapelüberlauf (CS1647) in csc.exe?
so gibt es andere Bibliotheken, die ich verwenden kann? –
@Yassir Es ist wirklich nicht so schwer, ein Hintergrundfeld zu erstellen und sie in Getter/Setter zu verwenden. – chakrit
brauchst du nicht; wie Marc Gravell sagte, müssen Sie es selbst implementieren, da sie nur ein Compiler-Trick sind (dh .net Compiler erstellt eine private Variable, um Ihre automatische Eigenschaft Wert zu halten) –