2012-01-09 4 views

답변

1

둘 사이의 표준 인터페이스는 모든 개체가 ToString()을 구현하고 하나 이상의 System.Uri 생성자가 문자열을 사용한다는 것입니다.

그 이상이면 나만의 작품이어야합니다.

1

페이지 유형 및 페이지 URI는 반드시 깨끗한 매핑되지 않습니다,하지만 당신은 미친 아무 짓도하지 한 경우, 당신이 뭔가를 할 수 있습니다 :

 Type blah; 
     var location = new Uri("/" + blah.Name + ".xaml", UriKind.Relative); 
+0

클로저. 불행히도 클래스가 프로젝트의 루트 폴더에 있지 않으면 작동하지 않습니다. –

+2

네, 그게 내가 미친 짓을하는 것에 대해 위에 말한 것입니다. 문제는 정보가 충분하지 않을 수 있다는 것입니다. 유형의 네임 스페이스는 위치를 결정하는 데 도움이 될 수 있지만 행 정렬을 요구하는 것은 없습니다. – McKay

0

이 완벽한 해결책이 아니다. 어셈블리 이름과 루트 네임 스페이스가 일치해야합니다. 또한 네임 스페이스 구조와 일치시키기 위해 asseblies 폴더 구조가 필요합니다.

var assemblyName = pageType.Assembly.FullName.Substring(0, pageType.Assembly.FullName.IndexOf(",")); 
var pageName = pageType.FullName; 
pageName = pageName.Substring(assemblyName.Length+1); 
pageName = pageName.Replace(".", "/"); 

var targetString = string.Format("/{0};component/{1}.xaml",assemblyName, pageName); 
var targetUri = new Uri(targetString, UriKind.Relative); 
+0

참조 : http://windowsphonegeek.com/tips/wp7-navigating-to-a-page-in-different-assembly –

관련 문제