2011-02-01 2 views
4

방금 ​​모든 클라이언트 프로젝트를 .NET 4로 업그레이드하기 시작했으며 WPF를 사용하고 있습니다. 내 모든 뷰 UserControl을 확장하는 기본 클래스에서 상속, 그것은 하나의 제네릭 형식 인수 BaseView 코드 유일한 기본 클래스입니다. .NET 4로 업그레이드하기 전에 간단히 x : TypeArgument를 지정했는데 모든 것이 잘 작동했지만 업그레이드가 끝나면 InitializeComponent() 호출에서 NullReferenceException이 발생합니다. xaml 파일은 Page와 MsBuild : Compile로 설정되어 있습니다. 어딘가에서 읽었을 때 Resource로 설정하려고했지만 빌드조차하지 않았습니다. AddressView : BaseView를 상속 한 코드 파일을 만들고이를 사용하면 잘 작동합니다. 내 XAML 파일에서 형식 인수를 계속 지정하는 방법이 있습니까?WPF 4로 업그레이드 할 때 InitializeComponent에서 일반 형식 인수로

업데이트 : 더 깊은 예외/스택 추적 추가 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

스택 추적 : System.Windows.Markup.WpfXamlLoader.TransformNodes (XamlReader xamlReader, XamlObjectWriter xamlWriter 부울 onlyLoadOneNode 부울 skipJournaledProperties 부울 shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 스택 IStyleConnector styleConnector에서

) System.Windows.Markup.WpfXamlLoader.Load (xamlReader xamlReader, IXamlObjectWriterFactory writerFactory, 부울 skipJournaledProperties, 개체 rootObject, XamlObjectWriterSettings 설정, 열린 우리당 기저 URI)

업데이트 2에서 : 어쩌면 당신은 그냥 separa을 마우스 오른쪽 버튼으로 업그레이드하고 te 프로젝트와 동일한 기본 클래스에서 상속하는 동일한 시스템에서 오류가 발생하지 않습니다. 그것은 매우 이상합니다. 문제점을 찾기 위해 문제가있는보기에서 항목을 제거하기 시작합니다.

답변

3

코드에 오류가 발생했습니다. 디버거에서 더 높은 수준의 예외 처리를 설정하면이 오류를 발견 할 수 있습니다.

Visual Studio에서 Ctrl-Alt-E를 눌러 예외 창을 표시 한 다음 두 언어 모두에서 공용 언어 런타임 예외가 선택되어 있는지 확인한 다음 코드를 실행하십시오.

오류가 발생한 코드 줄에서 실행이 중단됩니다. 오류가 발생하는 코드 줄에서 실행이 중단되므로 코드에서 쉽게 수정할 수 있어야합니다 (그렇지 않은 경우 코드 및 예외 텍스트 게시).

enter image description here

+0

네, 이미 시도했지만 작동하지 않습니다. 여전히 InitializeComponent() 라인에 직접 던져 넣었습니다. 그리고 똑같은 것을 시도했지만 XAML의 첫 번째 줄에서 컨트롤이 정의됩니다. 보기에서 좀 더 예외가 던져 질 것입니다, 나는 인터넷 검색을 시도하고 관련성이없는 것으로 보이는 아무것도 없으며, 예외가있는 원래 게시물을 업데이트합니다. – dariusriggins

+0

InitializeComponent에서 얻은 스택 추적을 게시 할 수 있습니까? 이것은 실제로 문제의 근원에 가깝기 때문에 마크 업에서 볼 수있는 예외보다 훨씬 유용합니다. –

2

은 제네릭 형식 인수 - 그것은 3.5에서 작동하는 데 사용됩니다. WPF에서

및 .NET Framework 버전 4를 대상으로 할 때, 당신은 XAML 2009 X와 함께 기능을 사용할 수 있습니다 : TypeArguments 만 (컴파일 마크 업을하지 않는 XAML) 느슨한 XAML에 대한 http://msdn.microsoft.com/en-us/library/ms750476.aspx에서. 마크 업 컴파일 된 XAML for WPF 및 BAML 형식의 XAML은 현재 XAML 2009 키워드 및 기능을 지원하지 않습니다. XAML을 마크 업해야하는 경우 "XAML 2006 및 WPF 일반 XAML 사용"절에 설명 된 제한 사항에 따라 작업해야합니다.

관련 문제