문제

우리는 DesignSurface와 우리 자신의 디자이너에게 좋은 ideSignerHost의 장점을 모두 사용합니다. 그런 다음 설계된 양식은 우리 자신의 맞춤형 형식으로 유지되며 모든 것이 훌륭하게 작동합니다. 또한 양식을 텍스트 기반 형식으로 내보내고 싶습니다 (그렇게 어렵지 않기 때문에 수행 한).

그러나 디자이너 코드를 CodeCompileUnit으로 다시 가져 오는 디자이너의 문서로 해당 텍스트를 다시 가져 오려고합니다. 불행히도, 구문 분석 방법은 구현되지 않습니다 (의심 할 여지없이 좋은 이유). 대안이 있습니까? 우리는 표준 .NET 설치에 존재하지 않는 것을 사용하고 싶지 않습니다 (Visual Studio와 함께 설치된 .NET 라이브러리).

내 현재 아이디어는 가져온 텍스트를 컴파일 한 다음 양식을 인스턴스화하고 특성과 컨트롤을 디자인 표면 객체에 복사하고 새로운 CodeCompileUnit을 캡처하는 것입니다. 그러나 더 나은 방법이 있기를 바랐습니다. 감사.


업데이트 : 일부는 우리의 진행 상황에 관심이있을 수 있습니다. 지금까지 좋지 않습니다. 내가 발견 한 것에 대한 간단한 개요는 구문 분석 방법이 너무 어려워서 구문 분석 방법이 구현되지 않았다는 것입니다. 오픈 소스 구문 분석기는 작업을 수행하는 것이지만 완전하지 않으므로 모든 경우에 작동하도록 보장되지는 않습니다 ( Nrefactory는 SharpDevelov 프로젝트의 것 중 하나입니다. 저는 믿습니다), 인스턴스에서 디자이너로의 컨트롤을 아직 작동하지 않습니다. 나는 이것이 컨트롤이 디자이너 표면이 랩하는 형태 인스턴스에 추가되지만 디자이너 표면은 그들의 포함을 인식하지 못하기 때문입니다. 우리의 다음 시도는 그것이 해결/페이스트를 모방하여 그것을 해결하는 것인지 확인하는 것입니다. 분명히, 이것은 거대한 불쾌한 해결 방법이지만, 우리는 그것을 작동해야하므로 대안을 주시하고 대안을 주시해야합니다.

도움이 되었습니까?

해결책

항상 자신의 C# Parser를 쓸 수 있습니다. 그렇게하면 완전성을 확신 할 수 있습니다.

당신의 경우, 당신은 Intellisense와 같은 것이 필요하지 않기 때문에, 아마도 파서 생성기를 사용하는 것만으로 도망 칠 수 있습니다.

그러나 당신이 하나를 손으로 썼더라도, 아마도 한 달 이상 당신을 데려 가지 않을 것입니다.

다른 팁

그것은 당신이 요청한 것이 아니지만, 코드 코드 포지 엔 멘테리얼 로이션 서비스 클래스를 사용하여 설계 표면의 현재 상태를 기반으로 Codedom 그래프를 생성하려고 시도 할 수 있습니다.

우리는 해당 클래스를 사용하여 내장 디자이너의 복사/붙여 넣기 기능을 처리합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top