t4テンプレートでMicrosoft.VisualStudio.Uml.Profiles.IStereotypeインターフェイスへの参照を取得する方法はありますか?つまり、実際の値を保持するIStereotypeInstanceではなく、UMLステレオタイプの定義を格納するIStereotypeを意味します。このようなことを試しましたが、ApplicableStereotypesの列挙は空です。
void WriteClassAttributes( IClass classItem )
{
foreach( IStereotypeInstance stereoInst in classItem.AppliedStereotypes )
{
this.WriteLine( string.Format( "{0} = {1}", stereoInst.Profile, stereoInst.Name ) );
}
foreach( IStereotype stereo in classItem.ApplicableStereotypes )
{
this.WriteLine( string.Format( "{0} = {1}", stereo.Profile.Name, stereo.Name ) );
}
}
ModelStoreからIStereotypeを取得しようとしました。ただし、ProfileManagerプロパティは常にnullを返し、コードは壊れます。
string GetDefaultValue( IStereotypePropertyInstance stereoProp )
{
IModelStore modelStore = stereoProp.GetModelStore();
Microsoft.VisualStudio.Uml.Profiles.IProfile profile =
modelStore.ProfileManager.GetProfileByName( profileName );
foreach( IStereotype stereo in profile.Stereotypes )
{
if( stereo.Name == stereoProp.StereotypeInstance.Name )
{
return stereo.DefaultValue;
}
}
}
私は立ち往生しています。助けてください!