DomainModel.CreateElementLink 方法

创建一个指定类型的元素链接。

命名空间:  Microsoft.VisualStudio.Modeling
程序集:  Microsoft.VisualStudio.Modeling.Sdk.11.0(在 Microsoft.VisualStudio.Modeling.Sdk.11.0.dll 中)

语法

声明
Public Overridable Function CreateElementLink ( _
    partition As Partition, _
    elementLinkType As Type, _
    roleAssignments As RoleAssignment(), _
    propertyAssignments As PropertyAssignment() _
) As ElementLink
public virtual ElementLink CreateElementLink(
    Partition partition,
    Type elementLinkType,
    RoleAssignment[] roleAssignments,
    PropertyAssignment[] propertyAssignments
)

参数

  • elementLinkType
    类型:System.Type
    在 DSL 定义的非抽象域关系。

返回值

类型:Microsoft.VisualStudio.Modeling.ElementLink
ElementLink 创建的。

备注

创建链接此方法适用于生成的代码要比对泛型编程。

下面的示例在从最小语言解决方案模板生成的 DSL 使用定义的类型。

示例

使用此方法,创建链接:

ExampleElement element1, element2;
MyLanguageDomainModel dm = ...;

RoleAssignment sourceRole = new RoleAssignment(ExampleElementReferencesTargets.SourceDomainRoleId, element1);
RoleAssignment targetRole = new RoleAssignment(ExampleElementReferencesTargets.TargetDomainRoleId, element2);
ExampleElementReferencesTargets link1 = 
        dm.CreateElementLink(dm.Store.DefaultPartition,
        typeof(ExampleElementReferencesTargets), 
        new RoleAssignment[] { sourceRole, targetRole},
        null)
        as ExampleElementReferencesTargets;

更直接地使用域关系,此示例创建相同的链接:

ExampleElementReferencesTargets link = new 
    ExampleElementReferencesTargets(element1, element2);

如果域关系定义在其关联的类的作用,属性,并且,如果您不希望对该链接,使用角色的属性,则可以创建链接。 在最小的语言 DSL, ExampleElementReferencesTargets 关系定义角色的属性 Source 和 Target:

// Creates the link without returning a reference to it:
element1.Targets.Add(element2);

.NET Framework 安全性

请参见

参考

DomainModel 类

Microsoft.VisualStudio.Modeling 命名空间

其他资源

[重定向] 生成的 API 中的域模型