Visual Studio 2010/2012/2013, Class Diagram: как показать интерфейс как базовый класс, а не как "lillypop"?

Так как интерфейс уже на диаграмме, я хотел бы явно показать ссылку на наследование. Но я не могу найти, как...

enter image description here

Ответы

Ответ 1

В VS 2005 до 2012 года существует ошибка, которая не позволит ей работать. У меня есть работа arround, которая может обмануть его в рисование наследования для интерфейсов. Скажем, ваш интерфейс называется IMyInterface. Вы должны заменить его абстрактным классом, реализующим этот интерфейс, и использовать его вместо своего интерфейса. Код будет использовать условную компиляцию и будет выглядеть следующим образом:

//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

Скорее всего, это покажет. В вашем случае IMyInterface станет IMedicine.