문제 : 테이블/열/관계를 입력 할 수있는 EF 모델 생성기와 유사한 도구를 만들면 모델 클래스가 생성됩니다. Visual Studio에 플러그인하여 DTE (개발 도구 환경)으로 VSIX에서 실행합니다.VSIX DTE - 부분으로 표시된 클래스 만들기
속성을 가진 추상 클래스를 성공적으로 만들었습니다. 이제 추상 클래스에서 상속 받게 될 동일한 파일에 다른 클래스를 만들고 싶습니다. 또한 partial
으로 표시됩니다. 어떤 부분으로 클래스를 표시하는 방법을 잘 모르겠다. IntelliSence
은 적절한 방법/속성을 제공하지 않으며 Google/SO/MSDN에서 검색 할 때 어떤 관련 결과도 제공하지 않습니다.
일부 코드
은 아이디어를 얻을 수 있습니다 :ProjectItem File = CreateOrFindClassFile(/*params*/); //Creating project file
if (File != null)
{
var NS = File.FileCodeModel.AddNamespace("ABC"); //Added namespace ABC
string ChildClassName = "Xyz";
string BaseClassName = "XyzBase";
//Generate base abstract class
var BaseClass = NS.AddClass(BaseClassName);
if (BaseClass != null)
{
BaseClass.Access = vsCMAccess.vsCMAccessPublic;
BaseClass.IsAbstract = true;
//some methods to add variables/methods/properties
}
//Generate partial child class
var ChildClass = lNamespace.AddClass(ChildClassName);
if (ChildClass != null)
{
ChildClass.Access = vsCMAccess.vsCMAccessPublic;
ChildClass.AddBase(lBaseClassName);
//TODO: add some code to mark as partial
}
}
질문 :partial
으로 클래스를 표시하는 (DTE 클래스 트리를 통해)은 OOP의 방법이 있나요?
또는 내가 캐릭터 라인으로 클래스를 작성하도록 강요 오전 :
NS.GetStartPoint(..)
.CreateEditPoint()
.Insert("public partial class Xyz : XyzBase\n{\n}\n");
참고 : 그것은 작동하지만이 클래스 제어 및 OOP 방식을 잃어버린거야.
EDIT1 : 그냥 EnvDTE partial class keyword
좋은 전화, 고마워요! =) – Tatranskymedved