共用方式為


CodeGenerationUtilities 類別

程式碼產生範本所使用的公用程式

繼承階層架構

System.Object
  Microsoft.VisualStudio.Modeling.DslDefinition.CodeGenerationUtilities

命名空間:  Microsoft.VisualStudio.Modeling.DslDefinition
組件:  Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0 (在 Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.12.0.dll 中)

語法

'宣告
Public NotInheritable Class CodeGenerationUtilities
public static class CodeGenerationUtilities

CodeGenerationUtilities 類型會公開下列成員。

方法

  名稱 描述
公用方法靜態成員 AddSerializationResourceStrings 加入產生之序列化程式所使用的資源字串。在此新增的字串並未當地語系化,因為它們用來產生 resx 檔案(其會被當地語系化)。
公用方法靜態成員 AllowMultiple 取得指定的角色是否根據其多重性允許多個執行個體。
公用方法靜態成員 CalculateInheritanceDepth 有了 DomainClass,計算所產生程式碼的繼承深度 (需考量雙衍生基底類別)。這用來判斷我們是否需要「過度繼承」的 SuppressMessage 屬性。
公用方法靜態成員 CreateXmlNamespaceQualifiers 為 dslLibrary 及其第一層級匯入程式庫建立 xmlNamespaceQualifiers
公用方法靜態成員 DefinesDiagramElements 如果指定的 DslLibrary 會定義圖表項目,則為 true,否則為 false。圖表項目是 DslLibrary.DiagramElements 中所包含的項目加上圖表 (如果有定義圖表的話)。
公用方法靜態成員 DefinesNewTargetRole 在關聯性衍生中,關聯性可以與其父關聯性使用相同的目標角色扮演者,也可以定義新目標角色扮演者 (衍生自父關聯性的目標角色扮演者)。這個方法會辨別指定的 DomainRelationship 是否會定義新的目標角色扮演者。
公用方法靜態成員 GenerateFontStyle 建立初始化字型樣式的正確語法。
公用方法靜態成員 GetAccessModifier 取得指定的 AccessModifier 列舉的 C# 存取修飾詞關鍵字
公用方法靜態成員 GetAttributeProperties 傳回所有在指定之 DomainClass 所定義且會序列化為 XML 屬性的所有 DomainProperties。
公用方法靜態成員 GetBaseClass 取得宣告網域類別之基底類別的字串。如果未定義基底類別,則會使用 ModelElement。
公用方法靜態成員 GetBaseDomainClass 取得提供的類別的基底網域類別。
公用方法靜態成員 GetBaseDomainClassMonikerSchemaTypeName 取得指定之網域類別的基底類別的 Moniker 結構描述型別名稱。
公用方法靜態成員 GetBaseDomainClassMonikerTagName 取得所提供之網域類別序列化成 Moniker 時的 MonikerTagName。請注意,moniker 的標記名稱不能相同,因為那會需要所產生的結構描述中相同項目的兩個定義。所使用的預設名稱 (如果未指定使用"XmlClassData.MonikerElementName"),"Moniker" 前面會是未以 Moniker 方式處理過的 XmlTagName。
公用方法靜態成員 GetBaseDomainClassSchemaTypeName 取得指定之網域類別的基底類別的結構描述型別名稱。
公用方法靜態成員 GetBaseDomainClassXmlTagName 取得所提供之網域類別的基底類別的 XmlTagName。
公用方法靜態成員 GetBasePropertyHandlerName 取得給定屬性之 PropertyHandler 的基底類別。如果是計算的屬性則基底類別會不同。
公用方法靜態成員 GetBaseRelationship 取得宣告網域關聯性之基底關聯性的字串。如果未定義基底類別,則會使用 ElementLink。
公用方法靜態成員 GetBaseRole 取得給定角色的基底角色 (如果有的話)。否則會傳回 null。
公用方法靜態成員 GetCamelCase 藉由將第一個字元小寫的方式,將輸入字串轉換為 Camel 大小寫
公用方法靜態成員 GetDesigner 取得指定之 DslLibrary 中定義的設計工具。
公用方法靜態成員 GetDiagramElementForDecoratorMap 取得與定義 Decorator 對應之圖案或接點對應相關聯的圖表項目。
公用方法靜態成員 GetDomainClassMonikerSchemaTypeName 取得指定之網域類別的 Moniker 結構描述型別名稱。
公用方法靜態成員 GetDomainClassMonikerTagName(DomainClass, String) 取得網域類別序列化成 Moniker 時的 MonikerTagName。請注意,moniker 的標記名稱不能相同,因為那會需要所產生的結構描述中相同項目的兩個定義。所使用的預設名稱 (如果未指定使用"XmlClassData.MonikerElementName"),"Moniker" 前面會是未以 Moniker 方式處理過的 XmlTagName。
公用方法靜態成員 GetDomainClassMonikerTagName(DomainClass, String, Dictionary<DslLibrary, String>) 取得網域類別序列化成 Moniker 時的 MonikerTagName。請注意,moniker 的標記名稱不能相同,因為那會需要所產生的結構描述中相同項目的兩個定義。所使用的預設名稱 (如果未指定使用"XmlClassData.MonikerElementName"),"Moniker" 前面會是未以 Moniker 方式處理過的 XmlTagName。
公用方法靜態成員 GetDomainClassSchemaTypeName 取得指定之網域類別的結構描述型別名稱。
公用方法靜態成員 GetDomainClassXmlTagName(DomainClass, String) 取得網域類別的 XmlTagName。
公用方法靜態成員 GetDomainClassXmlTagName(DomainClass, String, Dictionary<DslLibrary, String>) 取得網域類別的 XmlTagName。
公用方法靜態成員 GetDomainTypeFullName(DomainProperty) 取得 DomainProperty 的型別的完整名稱 (包括泛用參數),相對於該屬性的類別的命名空間。
公用方法靜態成員 GetDomainTypeFullName(DomainType, String) 取得 DomainType 的完整名稱 (包括泛用參數),相對於指定的目前命名空間。
公用方法靜態成員 GetElementProperties 傳回在指定 DomainClass 上定義且會序列化為巢狀 XML 項目的所有 DomainProperties。
公用方法靜態成員 GetGeneratedLinkAccessModifier 傳回 DomainRelationship 及其角色扮演者之間傳遞的型別存取修飾詞中限制最大者。
公用方法靜態成員 GetGeneratedPropertyGetterAccessModifier 傳回 getter 屬性修飾詞,用於 DomainRelationship 類別中 Get/Set 屬性
公用方法靜態成員 GetGeneratedPropertySetterAccessModifier 傳回 setter 屬性修飾詞,用於 DomainRelationship 類別中的 Get/Set 屬性
公用方法靜態成員 GetGenerationClassName 傳回要產生的類別名稱。如果是雙衍生類別,我們會在網域類別名稱中加入 'Base'。否則會使用網域類別名稱。
公用方法靜態成員 GetGenerationInheritanceModifier 取得網域類別的類別修飾詞。如果類別是雙衍生類別則傳回「抽象」,因為雙衍生組中產生的類別 (基底類別) 永遠是抽象
公用方法靜態成員 GetGuid 傳回格式為「new System.Guid(xxx)」的字串,其中 xxx 是指定 guid 的字串格式。
公用方法靜態成員 GetInheritanceModifier 取得指定的 InheritanceModifier 列舉的 C# 修飾詞關鍵字
公用方法靜態成員 GetMethodModifier 在產生的程式碼中,取得具有給定參數的方法修飾詞 (virtual、override 等等)。
公用方法靜態成員 GetModelElementDomainClass 傳回代表 ModelElement 的 DomainClass
公用方法靜態成員 GetNameProperty 傳回可用於識別使用者項目的屬性 (在這個類別或基底類別)。傳回標記 IsElementName 的屬性。若無則會傳回標記為 IsMonikerKey 的屬性。若無則會傳回 null。
公用方法靜態成員 GetPackageNamespace 取得指定之 Dsl 的 Dsl 封裝名稱。
公用方法靜態成員 GetPropertyDefaultValue 傳回字串,用來宣告屬性的預設值 (以 "= defaultValue" 的形式
公用方法靜態成員 GetPropertyDefaultValueAttribute 取得 System.ComponentModel.DefaultValueAttribute 的建構函式的字串。
公用方法靜態成員 GetPropertyHandlerName 取得屬性的屬性處理常式名稱。
公用方法靜態成員 GetPropertyKind 傳回 DomainPropertyAttribute 建構函式的屬性種類的字串。
公用方法靜態成員 GetPropertyRepresentation 取得指定之 DomainProperty 的 PropertyRepresentation (屬性、項目或忽略)。如果沒有指定則預設為 Attribute。
公用方法靜態成員 GetPropertyTagName 取得所指定 DomainProperty 的 XML 標記名稱。標記名稱會是 XML 屬性名稱(如果屬性已序列化為 XML 屬性), 或 XML 項目名稱(如果屬性已序列化為巢狀 XML 項目)。
公用方法靜態成員 GetRelationshipTagName 取得指定之角色關聯性的 XML 角色項目名稱。注意:這是 RoleElementName (如果有定義),而不是完整格式關聯性的 XML 標記名稱 (這是從 GetDomainClassXmlTagName() 傳回)。
公用方法靜態成員 GetSameNameBaseRole 如果指定角色的基底角色和該指定角色名稱相同,則傳回該基底角色。
公用方法靜態成員 GetSegmentInputType(PathSegment) 對於指定的 pathSegment,這個方法會傳回其輸入型別的完整限定名稱。
公用方法靜態成員 GetSegmentInputType(PathSegment, Boolean) 對於指定的 pathSegment,這個方法會傳回其輸入型別的完整限定名稱。
公用方法靜態成員 GetSegmentOutputType(PathSegment) 對於指定的 pathSegment,這個方法會傳回其輸出型別的完整限定名稱。
公用方法靜態成員 GetSegmentOutputType(PathSegment, Boolean) 對於指定的 pathSegment,這個方法會傳回其輸出型別的完整限定名稱。
公用方法靜態成員 GetSerializedDomainClasses 取得指定 DslLibrary 中所有將會產生序列化程式之 DomainClasses 的清單。
公用方法靜態成員 GetTypeAccessModifier 取得指定的 TypeAccessModifier 列舉的 C# 存取修飾詞關鍵字
公用方法靜態成員 GetTypeRole 取得角色,會決定已針對此角色產生之屬性的型別。這是和這個角色具有相同名稱的最基底角色。
公用方法靜態成員 GetVersionString 取得字串形式的 DslLibrary 版本。
公用方法靜態成員 GetXmlSchemaNamespace 取得要用於產生之結構描述的 XML 命名空間
公用方法靜態成員 HasCompartmentMaps 如果指定的圖表會定義 CompartmentMaps,則為 true。
公用方法靜態成員 HasCustomBaseImplementation 已過時。指定的 DomainClass (或任何其基底 DomainClasses) 是否標示為 "IsCustom",這表示序列化作業是自訂的。
公用方法靜態成員 HasCustomTypeDescriptor 如果指定類別已定義自訂型別描述元,則傳回 true,否則傳回 false。
公用方法靜態成員 HasNonAbstractBaseClass 判斷指定的 DomainClass 是否具有非抽象的基底類別。有需要判斷是否需要產生 "new" 關鍵字。
公用方法靜態成員 IsCoreDomainModel 傳回所提供的類別是否為核心網域模型
公用方法靜態成員 IsElementLinkDomainClass 傳回所提供的網域類別是否代表 "ElementLink"。
公用方法靜態成員 IsGuidType 如果 typeName 代表 Guid ("System.Guid") 則傳回 true。
公用方法靜態成員 IsInCoreDomainModel 傳回所提供的類別是否為核心網域模型的一部分
公用方法靜態成員 IsLaxElementSchemaRequired 類別是否需要鬆散的項目結構描述型別定義
公用方法靜態成員 IsModelElementDomainClass 傳回所提供的網域類別是否代表 "ModelElement"。
公用方法靜態成員 IsMultiple 如果指定的多重性上限為 * 則傳回 true
公用方法靜態成員 IsOuterDecorator(DiagramElementHasDecorators) 如果指定的連結會連接至外部裝飾項目,則傳回 true。
公用方法靜態成員 IsOuterDecorator(ShapeDecoratorPosition) 如果指定的 ShapeDecorationPosition 為外部裝飾項目,則傳回 true。
公用方法靜態成員 IsRootClass 如果 DomainClass 是根類別,其所有序列化相關方法/屬性將會是虛擬 (除非是密封);否則,這些方法/屬性將會是「覆寫」方法/屬性,而且會呼叫基底實作。目前來說,如果 DomainClass 直接衍生自 Microsoft.VisualStudio.Modeling.ModelElement 或 Microsoft.VisualStudio.Modeling.ElementLink,則其為根類別。
公用方法靜態成員 IsStringProperty 如果屬性的型別是字串則傳回 true。
公用方法靜態成員 IsStringType 如果 typeName 代表字串 ("string" 或 "System.String") 則傳回 true
公用方法靜態成員 MapToSchemaType 將 DomainType 對應到它的結構描述型別。
公用方法靜態成員 OmitElement 取得指定的 DomainRelationship 是否已序列化為 "OmitElement" (不含角色項目標記)。
公用方法靜態成員 RequiresGeneratedPropertyDescriptor 如果指定的描述元要求產生 PropertyDescriptor 衍生類別則傳回 true,否則傳回 false。
公用方法靜態成員 SortDomainClassesByInheritance<T> 根據相對繼承關聯性排序 DomainClasses 集合。最具衍生性的一個會出現在排序結果的第一個。這用在下列情況: 假設您有 4 個 DomainClasses A、 B、 C 和 D。您必須產生一些程式碼,看起來如下:...的 a = obj as A; if (a != null) ...B b = obj as B; if (b != null) ...C c = obj as C; if (c != null) ...D d = obj as D; if (d != null) ......如果 C 衍生自 A,上述的程式碼是錯誤的;正確的程式碼應該要先檢查 C 再檢查 A。因此需呼叫此方法來依繼承順序排列 DomainClasses 為了繼承,而且產生的程式碼會看起來像:...C c = obj as C; if (c != null) ...的 a = obj as A; if (a != null) ...B b = obj as B; if (b != null) ...D d = obj as D; if (d != null) ......
公用方法靜態成員 SortProperties 依 XmlElement.Order 排序 DomainProperties (若有指定)。根據預設,每個屬性的順序為 0。順序較小的屬性先出現。相同順序的屬性不會排序 (也就是在排序後仍會保持相對順序)。排序已就位,所以傳入之集合會直接變更。
公用方法靜態成員 SortRoles 依 XmlRelationshipElement.Order 排序 DomainRoles (若有指定)。根據預設,每個角色的順序為 0。順序較小的角色先出現。相同順序的角色不會排序 (也就是在排序後仍會保持相對順序)。排序已就位,所以傳入之集合會直接變更。
公用方法靜態成員 UseFullForm 取得指定的 DomainRelationship 是否會以完整格式序列化。
公用方法靜態成員 WrapAsCSharpString 將指定的字串包裝成 C# 語法的字串常值。

回頁首

欄位

  名稱 描述
公用欄位靜態成員 CoreDomainModelNamespacePrefix

回頁首

執行緒安全

這個類型的任何 Public static (在 Visual Basic 中為 Shared) 成員都是安全執行緒。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Modeling.DslDefinition 命名空間