¿Hay alguna manera de generar propiedades automáticas de C# con Codedom o tal vez otro conjunto de librerías que pueda usar?Generar propiedades automáticas de C# con Codedom
Respuesta
CodeDom se supone que debe haber algún tipo de AST que puede ser convertido a múltiples idiomas (normalmente C# y VB. RED). Por lo tanto, no encontrará características que sean azúcar sintáctica de un idioma específico en CodeDom.
No, no lo es: C# CodeDom Automatic Property
echar un vistazo a this article para obtener algunos ejemplos útiles
En realidad, los comentarios acerca de que es fácil usar un CodeSnippetStatement son engañosos porque CodeTypeDeclaration no tiene una colección de sentencias a las que pueda agregar esos fragmentos.
Puede usar la clase CodeSnippetTypeMember para ese fin.
Por ejemplo:
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);
usted puede hacer esto: De acuerdo con 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);
Esto no funciona, ya que genera dos métodos vacíos' set' y 'get' que darán como resultado en la compilación de errores. El 'CodeSnippetTypeMember' (http://stackoverflow.com/a/23876973/191148) es la solución –
- 1. C# Propiedades automáticas: valores predeterminados de configuración
- 2. ¿Tiene Java propiedades automáticas?
- 3. Depuración de propiedades automáticas
- 4. ¿Puede CodeDom crear argumentos opcionales al generar un método C#?
- 5. MonoTouch - Campos vs Propiedades automáticas
- 6. C# CodeDom Propiedad automática
- 7. C# Propiedades automáticas: ¿sigue siendo nulo después de + =?
- 8. cómo anular el conjunto en C# de propiedades automáticas
- 9. Refactor C# propiedades automáticas para campos y propiedad getter/setter?
- 10. C# 3.0 Propiedades automáticas: ¿es posible agregar un comportamiento personalizado?
- 11. Campos públicos frente a propiedades automáticas
- 12. C# Propiedades automáticas: ¿Por qué tengo que escribir "get; set;"?
- 13. C# ¿Cómo establecer un valor predeterminado para las propiedades automáticas?
- 14. Propiedades automáticas con o sin campo de respaldo: ¿preferencia?
- 15. Propósito de propiedades automáticas en .NET
- 16. Propiedades automáticas de C#: ¿es posible tener un getter personalizado con setter predeterminado?
- 17. ¿Por qué las propiedades automáticas de C# no son compatibles con valores predeterminados como VB 2010?
- 18. Microsoft Roslyn vs CodeDom
- 19. Reflection.Emit vs CodeDOM
- 20. CodeDom restricción de tipo genérico
- 21. Generar propiedades mediante programación
- 22. C# propiedades con código repetido
- 23. Eliminaciones automáticas, propiedades de navegación en EF4 CTP5 POCO
- 24. creando enumeración usando .NET CodeDom
- 25. El diagrama de clases de Visual Studio 2008 crea propiedades vacías, no propiedades automáticas
- 26. ¿Por qué es necesario invocar: this() en una estructura para usar propiedades automáticas en C#?
- 27. CodeDom y Silverlight
- 28. C# 3.0 Propiedades automáticas, ¿por qué no acceder al campo directamente?
- 29. ¿Cómo establecer un valor predeterminado usando propiedades de "estilo corto" en VS2008 (Propiedades automáticas)?
- 30. ¿Por qué VB.NET 9 no tiene propiedades automáticas como C# 3?
así ¿hay otras bibliotecas que puedo usar? –
@Yassir Realmente no es tan difícil crear un campo de respaldo y usarlos en getter/setter. – chakrit
que no necesita; como dijo Marc Gravell, debes implementarlo tú mismo, ya que son solo un truco de compilación (es decir, el compilador .net crea una variable privada para mantener tu valor de propiedad automático) –