2010-03-16 3 views
0

TopMostNode 클래스 용 TypeConverter가 있습니다. ExpandableObjectConverter를 확장합니다. TopMostNode에는 두 가지 속성이 있습니다. 속성 그리드에서 설정하면 디자이너에게 올바르게 직렬화 된 코드가됩니다. 그러나 속성에 텍스트를 입력하면 "속성 값이 유효하지 않습니다."오류가 발생하고 세부 정보에 다음과 같이 표시됩니다.의미가없는 TypeConverter 오류 받기

'TopMostNode'유형의 개체를 'TopMostNode'형식으로 변환 할 수 없습니다.

나는 당황하고 있습니다. 형식 변환기 ConvertFrom 코드를 단계별로 실행하면 예상대로 실행됩니다. 나는 이런 문제를 찾기 시작할 줄조차 모릅니다.

답변

1

같은 어셈블리의 두 가지 버전이로드되었을 수 있습니다.

+0

참조 http://stackoverflow.com/questions/2450087/how-do-you-mark-class-with-typeconverter-that-is-not-in-referenced-solution – SLaks

+0

확장 성 프로젝트가 참조하고 있음을 확인했습니다. 내가하고있는 어셈블리. 두 개 이상로드되었는지 확인하는 방법은 무엇입니까? –

+0

첫 번째 복사본에 VS의 두 번째 복사본을 첨부하고 예외를 중단 한 다음 값 및 속성에 대해 'Type'및 'Assembly'개체를 확인합니다. – SLaks

0

모든 디자인 타임 기능이 별도의 DLL에있을 때 .NET Framework 4.0 클라이언트 프로필에 대한 컨트롤을 개발하는 동안 동일한 문제가있었습니다. 문제는 두 프로젝트 (핵심 컨트롤과 디자인 타임 파트)를 VS에 하나의 솔루션으로로드했을 때 나타났습니다. 그러나 다른 프로젝트에서 내 컨트롤의 컴파일 된 프로덕션 버전을 사용하려고 할 때 모두 정상적으로 작동했습니다.

결론은 다음과 같습니다. TypeConverter 코드를 디버깅하기 전에 컴파일 된 버전의 컨트롤을 컨트롤 개발 프로젝트 외부에서 사용해보십시오.

P. 개발하는 동안 디자인 타임 기능을 사용할 수있게하기 위해 디자인 타임 파트 DLL을 VS의 PrivateAssemblies 폴더에 넣었습니다.