Dado que la interfaz ya está en el diagrama, me gustaría mostrar explícitamente la herencia de referencia. Pero no puedo encontrar la manera ...Visual Studio 2010/2012/2013, Diagrama de clase: cómo mostrar la interfaz como clase base, no como "lillypop"?
Respuesta
Hay un error en VS 2005 hasta el 2012 que no permitirá que funcione. Tengo un trabajo que podría engañarlo para dibujar la herencia de las interfaces. Supongamos que su interfaz se llama IMyInterface. Tienes que reemplazarlo con una clase abstracta que implemente esa interfaz y usarla en lugar de tu interfaz. El código podría hacer uso de la compilación condicional y tendrá el siguiente aspecto:
//to generate class diagram, add 'CLSDIAGRAM' to the conditional symbols on the Build tab, // or add '#define CLSDIAGRAM' at the top of this file #if CLSDIAGRAM #warning CLSDIAGRAM is defined and this build should be used only in the context of class diagram generation //rename your interface by adding _ public interface IMyInterface_ { int MyProperty { get; } void MyMethod(); } //this class will act as an interface in the class diagram ;) public abstract class IMyInterface : IMyInterface_ // tricks other code into using the class instead { //fake implementation public int MyProperty { get { throw new NotImplementedException(); } } public void MyMethod() { throw new NotImplementedException(); } } #else // this is the original interface public interface IMyInterface { int MyProperty { get; } void MyMethod(); } #endif
que es probable que mostrarla como desee. En su caso, IMyInterface se convertirá en IMedicine.
Gracias por su respuesta. Por supuesto, uso un código adicional especialmente para hacer que los diagramas de diseño sean más informativos, pero hacerlo junto con la compilación condicional es algo nuevo para mí. –
- 1. Diagrama de clase de Visual Studio 2010
- 2. Diagrama de clase de Visual Studio que no muestra relaciones
- 3. ¿Por qué Visual Studio ha marcado mi clase como componente?
- 4. Cómo serializar una clase derivada como su clase base
- 5. Clase base abstracta vs. Clase concreta como SuperTipo
- 6. Expresión ternario con interfaces como clase base
- 7. C# enum en la interfaz/clase base?
- 8. ¿Cómo construyes un Visual Studio como UI?
- 9. Cuando una clase implementa una interfaz descendiente, ¿por qué no cuenta automáticamente como implementar la interfaz base?
- 10. clase abstracta no implementa interfaz
- 11. Creación de un diagrama de clase C++
- 12. Visual Studio - forma fácil de mostrar la definición de tipo como código fuente
- 13. cruce de clase de interfaz como parámetro en Java
- 14. generando diagrama de clase
- 15. clase derivada como argumento predeterminado g ++
- 16. Func <> usando la clase base como parámetro
- 17. Referencia de clase como propiedad
- 18. BroadcastReceiver como clase interna
- 19. ¿Clase como observador NSNotification?
- 20. Como llegar clase de tipo
- 21. No se puede crear un diagrama de clases para la clase dll simple en Visual Studio 2010
- 22. ¿Necesita una clase abstracta así como una interfaz?
- 23. Cómo generar una clase desde una interfaz
- 24. Protocolo de declaración como @clase
- 25. Matriz como miembro privado de la clase
- 26. Usar clase infantil como un parámetro de plantilla de una clase base y como un especificador de nombre anidado
- 27. Depurar o compilar como no administrador en Visual Studio 2008
- 28. tipo de clase C++ como argumento
- 29. Cómo pasar una clase genérica como un parámetro a un constructor de la clase no genérica
- 30. ¿Matriz como propiedad de la clase?
También estoy interesado en esto, pero a juzgar por [esto] (http://social.msdn.microsoft.com/Forums/da-DK/vsclassdesigner/thread/0866a2d5-ad19-4e5c-a05b-0912eb7f7a13) y otros hilos es imposible. ¡Incluso en VS 2012 RC! – ieaglle
¡Todavía no funciona incluso en VS 2013! - "Agregar soporte para mostrar las líneas entre una clase y la interfaz que implementa es una de las características altamente solicitadas que está en la parte superior de nuestra lista para las versiones futuras" - declaró MS en 2005 :) - http://social.msdn.microsoft .com/Forums/es-ES/0866a2d5-ad19-4e5c-a05b-0912eb7f7a13/showing-interface-implementation? forum = vsclassdesigner. –
Me gusta que haya estado editando esta pregunta en los últimos 4 años agregando nuevas versiones de Visual Studio. ¿Qué hay de 2015? ¿Alguna suerte allí? –