2009-04-07 3 views
2

.NET에서 클래스 다이어그램 (.cd)을 프로그래밍 방식으로 생성 할 수 있습니까 (C#)? 그렇다면 어떻게?디자이너를 사용하지 않는 .NET 클래스 다이어그램

PD : 분명히 IDE를 사용하여 생성하는 방법에 대한 지침은 필요하지 않습니다. 클래스를 ClassDiagram 항목으로 드래그 앤 드롭 할 수 있다는 것을 알고 있습니다.

답변

3

방금 ​​메모장을 사용하여 .cd 파일을 열었습니다.이 파일은 plain XML ... 프로그래밍 방식으로 생성하는 것이 어렵지 않습니다.

0

클래스 다이어그램에 사용할 .cs 파일을 선택하고 클래스 다이어그램보기를 선택하면 .cd 파일이 생성되어 표시됩니다.

+0

그건 코드에서 나온 것이 아닙니다. –

+0

예 ... 코드가 입력입니다. 코드에서 ... ;-P – Shog9

+0

지금 내가 무슨 뜻인지 이해한다고 생각하지만 그 대답은 잘 모릅니다. –

0

예, Visual Studio를 열고 .cs 파일 또는 프로젝트를 마우스 오른쪽 단추로 클릭하고 클래스 다이어그램보기를 선택하십시오. .cd가 자동으로 생성됩니다.

0

나는 절반의 답변을 사과하지만 실제로 가능한지 꽤 시간이 걸릴지를 확인하십시오.

XML 형식을 보면 상당히 해롭다. 특히 해시 항목을 삭제하면 IDE에서 해당 항목을 삭제하게된다.

실제로 자동화하려면 VS 자동화 API 인 EnvDTE를 사용해야합니다. API는 꽤 수수하고 일반화되어 있습니다. 문서를 통해 클래스 다이어그램을 다루는 특정 클래스 나 다른 것을 찾을 수 없었습니다.

몇 시간을 소비하는 것이 중요 할 경우 자동화 API로 검사 할 수 있도록 수동으로 작성하는 것이 좋습니다. EnvDTE COM 개체 (CoCreated 또는 VS 매크로로 제공됨)를 사용하여 DTE.Solution.Open을 사용하여 솔루션을 엽니 다. 그런 다음 DTE.Solution.Projects를 사용하여 클래스 다이어그램으로 프로젝트를 찾은 다음 Project.ProjectItems를 사용하여 클래스 다이어그램 파일을 찾습니다.

거기에서 ProjectItem의 Kind 속성이 특별한 것을 나타내는 지 확인한 다음 다른 속성을 사용하여 ProjectItem의 Object 속성을 반영하여 특별한 것이 있는지 확인합니다.

한 번 생성해야하는 경우 DTE.Commands 속성을 사용하여 사용 가능한 명령 목록을 가져옵니다. 메뉴를 마우스 오른쪽 버튼으로 클릭하여 호출 한 명령이 어딘가에 있어야합니다. 그런 다음 DTE.Windows.Items (Constants.vsWindowKindSolutionExplorer) .Object를 UIHeirarchy로 사용하여 솔루션 탐색기 창을 가져오고 UIHeirarchy 및 UIHeirarchyItem을 사용하여 파일을 선택하고 명령을 호출 할 수 있습니다.

죄송합니다. 전체 예제를 제공 할 수는 없지만 트리를 편리하게 볼 수있는 코드가 없으므로 몇 시간이 걸립니다.

관련 문제