2012-02-28 2 views
0

몇 가지 프로젝트로 구성된 "첫 번째"솔루션이 있습니다. 프로젝트 중 하나는 다른 프로젝트의 dll을 참조합니다. 특정 위치로 탐색하여 추가합니다. 하나의 간단한 Windows 응용 프로그램으로 다른 솔루션 "Second"를 시작하면 "First"에 대한 참조와 "First"프로젝트 중 두 개에 대한 참조가 추가됩니다. "First"의 코드를 통해 참조를 추가합니다. 마지막 줄에잘못된 어셈블리를로드하는 XmlSerializer

OneProject hello = OneProjectList[OneProjectList.Count - 1]; 
StringWriter sw = new StringWriter(); 
XmlSerializer serializer=new XmlSerializer(hello.GetType(),new Type[]{typeof(OneProject)}); 
serializer.Serialize(sw, hello); 

프로젝트 충돌 :

지금, "첫 번째"에, 나는 코드 줄이있다. 예외는 { "[A] Something.X는 [B] Something.X로 캐스팅 될 수 없습니다. 유형 A는 'LoadFrom'컨텍스트에서 'Something, Version = 1.0.0.0, Culture = neutral, PublicKeyToken =타입 B는'C : \ Users \ John \ AppData \ Local \ Microsoft의'LoadNeither '컨텍스트에서'EL_CL, 버전 = 1.0.0.0, Culture = neutral, PublicKeyToken = null '에서 비롯된 것입니다. \ Visual Studio \ 8.0 \ ProjectAssemblies \ p3www12k01 \ EL_CL.dll '. "}

VS의 출력 창에서'devenv.exe '(Managed) :'C : \ Users \ John \ AppData \ 로컬 \ 마이크로 소프트 \ VisualStudio \ 8.0 \ ProjectAssemblies \ p3www12k01 \ Something.dll ', 기호가로드되지 않았습니다.

이 어셈블리가로드되는 이유는 무엇입니까? serializer.Serialize (sw, hello); 동안 출력 창에 해당 행이 표시되고 그 직후에 프로그램이 충돌합니다.

Something = hello.GetType()에 유의하십시오.

답변

0

XmlSerializer 생성자에서 추가 Type 배열을 제거하면 작동합니까?

XmlSerializer serializer = new XmlSerializer(hello.GetType); 
+0

아니요 동일한 예외가 발생합니다. –

관련 문제