다음을 통해 공유


AddRule 클래스

개체가 모델에 추가되는 경우 호출되는 규칙을 나타냅니다.

상속 계층 구조

System.Object
  Microsoft.VisualStudio.Modeling.Rule
    Microsoft.VisualStudio.Modeling.AddRule
      Microsoft.VisualStudio.Modeling.Diagrams.CommentShapeAddRule
      Microsoft.VisualStudio.Modeling.Diagrams.NodeShape.ExpandCollapseNodeShapeWhenAddedToDiagramRule
      Microsoft.VisualStudio.Modeling.Diagrams.ParentShapeContainsNestedChildShapesAddRule
      Microsoft.VisualStudio.Modeling.Diagrams.ParentShapeHasRelativeChildShapesAddRule
      Microsoft.VisualStudio.Modeling.Diagrams.ShapeElementAddRule
      Microsoft.VisualStudio.Modeling.ElementDeserializedRule

네임스페이스:  Microsoft.VisualStudio.Modeling
어셈블리:  Microsoft.VisualStudio.Modeling.Sdk.12.0(Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

구문

‘선언
Public MustInherit Class AddRule _
    Inherits Rule
public abstract class AddRule : Rule

AddRule 형식에서는 다음과 같은 멤버를 노출합니다.

생성자

  이름 설명
Protected 메서드 AddRule AddRule 클래스의 인스턴스를 초기화합니다.

위쪽

속성

  이름 설명
Public 속성 FireBefore 변경이 발생하기 전에 이 규칙을 실행할 경우 true입니다. (Rule에서 상속됨)
Public 속성 FireImmediately 이 규칙이 변경이 발생하는 즉시 실행될 경우 true입니다. (Rule에서 상속됨)
Public 속성 FireOnLocalCommit 이 규칙이 현재 트랜잭션을 커밋할 때 실행될 경우 true입니다. (Rule에서 상속됨)
Public 속성 FireOnTopLevelCommit 이 규칙이 최상위 트랜잭션을 커밋할 때 실행될 경우 true입니다. (Rule에서 상속됨)
Public 속성 FireTime 규칙을 실행할 시점을 가져오거나 설정합니다.일반적으로 RuleOn 특성으로 설정합니다. (Rule에서 상속됨)
Public 속성 IsEnabled 규칙을 사용할지 여부를 나타내는 값을 가져오거나 설정합니다.일반적으로는 true가 기본값이지만 RuleOn 특성에서 false로 초기화할 수 있습니다. (Rule에서 상속됨)
Public 속성 Priority 규칙에 할당된 우선 순위를 가져옵니다.트랜잭션 마지막에 규칙을 실행하는 순서를 결정하는 데 이용합니다. (Rule에서 상속됨)

위쪽

메서드

  이름 설명
Public 메서드 CompareTo(Object) 규칙을 다른 개체와 비교합니다. (Rule에서 상속됨)
Public 메서드 CompareTo(Rule) 규칙을 다른 규칙과 ID로 비교합니다. (Rule에서 상속됨)
Public 메서드 ElementAdded 규칙이 사용되었음을 수신기에 알립니다.
Public 메서드 Equals(Object) 규칙이 다른 개체와 같은지 여부를 확인합니다. (Rule에서 상속됨)
Public 메서드 Equals(Rule) 규칙이 다른 규칙과 같은지 여부를 확인합니다. (Rule에서 상속됨)
Protected 메서드 Finalize 가비지 수집에서 회수하기 전에 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드 GetHashCode 규칙의 해시 코드를 가져옵니다. (Rule에서 상속됨)
Public 메서드 GetType 현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드 MemberwiseClone 현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드 ToString 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)

위쪽

설명

이러한 유형의 규칙 요소, 관계, 도형, 연결선 또는 다이어그램 모델에 추가 될 때 트리거됩니다.

A RuleOnAttribute 작동 규칙 개체 입력 규칙 때 발생 해야 하며 특성 클래스에 나타냅니다.

규칙은 프로그래밍 방식으로 또는 UI에 추가 되어 있는지 여부를 지정 된 형식의 개체 모델에 추가 될 때 호출 됩니다.

규칙 요소 파일에서 로드 되는 경우에 트리거됩니다. 이 문제가 발생 하면 응답 하지 않도록 하려는 경우에 ElementAdded에서이 코드를 포함:

// Ignore this call if we're currently loading a model:
    if (e.ModelElement.Store.TransactionManager
          .CurrentTransaction.IsSerializing) 
       return;

자세한 내용과 예제를 보려면 규칙으로 모델 내부의 변경 내용 전파을 참조하십시오.

예제

다음 예제에서는 규칙 정의에서 파생 된 AddRule. 다이어그램에 추가 될 때이 규칙에서 도형의 위치를 설정 합니다.

RuleOn 최상위 트랜잭션이 커밋될 때 규칙 발생 해야 특성을 나타냅니다.

[RuleOn(typeof(ParentShapeContainsNestedChildShapes), FireTime = TimeToFire.TopLevelCommit)]
public class ShapeAddedToDiagramRule : AddRule
{
  private double offset = 0.25;
  private PointD location = new PointD(0.25, 0.25);

  public override void ElementAdded(ElementAddedEventArgs e)
  {
    Shape shape = null;
    ParentShapeContainsNestedChildShapes nestedLink = e.ModelElement as ParentShapeContainsNestedChildShapes;
    if (nestedLink != null)
    {
      shape = nestedLink.NestedChildShapes as Shape;
    }

    if (shape != null && shape.Diagram != null)
    {
      // Expand the shape and move it to its new position
      shape.IsExpanded = true;
      shape.Location = new PointD(location.X, location.Y + offset);

      // Adjust the height offset for the size of the shape
      // (I'm assuming that the DefaultContainerMargin
      // provides for a decent spacing between the shapes)
      offset += shape.Size.Height + shape.Diagram.DefaultContainerMargin.Height;
    }
  }
}

스레드로부터의 안전성

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

참고 항목

참조

Microsoft.VisualStudio.Modeling 네임스페이스

기타 리소스

규칙으로 모델 내부의 변경 내용 전파