2010-03-12 2 views
4

Я запускаю этот код на диаграмме классов UML, и он работает отлично, но при попытке применить стереотипы из PropertiesEditor в Visual Studio для завершения отношений (FirstRole и SecondRole), стереотипы combo не загружаются, даже если в кода, похоже, применимы стереотипы, действующие для свойств ассоциации. Что следует помещать в метаклассы в профиле UML, кроме IProperty?Как применять стереотипы в пользовательских именах UML-отношений?

<metaclassMoniker name="/MyUmlProfile/Microsoft.VisualStudio.Uml.Classes.IProperty"/> 

Это код:

using Microsoft.VisualStudio.Uml.Classes; 

foreach(IShape shape in currentDiagram.GetSelectedShapes<IElement>()) 
{ 
    IElement element = shape.GetElement(); 
    foreach(IStereotype stereotype in element.ApplicableStereotypes) 
    { 
     if(element is Microsoft.VisualStudio.Uml.Classes.IClass) 
     { 
      IClass classItem = (IClass)element; 
      if(classItem.SuperClasses.Count() > 0) 
      { 
       if(stereotype.Name == "SubclassAttribute") 
       { 
        element.ApplyStereotype(stereotype); 
       } 
      } 
      else if(stereotype.Name == "ClassAttribute") 
      { 
       element.ApplyStereotype(stereotype); 
      } 
     } 
     else if(element is Microsoft.VisualStudio.Uml.Classes.IProperty) 
     { 
      IProperty property = (IProperty)element; 
      if(property.Association != null) 
      { 
       if(stereotype.Name == "SetAttribute" && 
        property.UpperValue != null && property.UpperValue.ToString() == "*") 
       { 
        element.ApplyStereotype(stereotype); 
       } 
       else if(stereotype.Name == "ManyToOneAttribute" && 
        (property.UpperValue == null || property.UpperValue.ToString() == "1")) 
       { 
        element.ApplyStereotype(stereotype); 
       } 
      } 
      else if(stereotype.Name == "PropertyAttribute") 
      { 
       element.ApplyStereotype(stereotype); 
      } 
     } 
    } 
} 

ответ

1

Я отправил этот вопрос Skinner's Blog и я получил этот ответ:

"К сожалению, это ошибка в коде."

Решение должно поставляться с Visual Studio 2010 SP1.

+1

Но это не так :-( В SP1 нет исправлений. –