2008-09-23 3 views
3

WinForm/Console 또는 내 경우에는 VS Unit Test와 같은 비 asp.net 응용 프로그램 내에서 표준 XmlSiteMapProvider를 사용하기위한 해결 방법이 있는지 궁금합니다.WinForm/Console/VSTest 응용 프로그램 내에서 XmlSiteMapProvider를 사용할 수 있습니까?

GetConfigDocument 메서드 내에서 .sitemap 파일에 대한 경로를 만들 수 없으므로 다음 코드는 실패합니다.

XmlSiteMapProvider provider = new XmlSiteMapProvider(); 
NameValueCollection providerAttributes = new NameValueCollection(); 
providerAttributes.Add("siteMapFile", "Web.sitemap"); 
provider.Initialize("XmlSiteMapReader", providerAttributes); 
provider.BuildSiteMap(); 

다른 솔루션을 작성하는 것이 올바른 해결책이라고 생각합니다.

답변

2

왜 안 보이나요. 인터페이스를 구현하는 것은 단지 제공자 일뿐입니다. 많은 기능이 필요하지는 않지만 API에서 제공하는 기능에 액세스 할 수 있습니다. WinForms 화면은 단순히 식별을 위해 URL을 사용하여 계층 구조에서 위치를 결정할 수 있습니다.

HttpContext를 사용하여 현재 웹 요청의 URL을 가져와 현재 값을 식별 할 수있는 동안 HttpContext를 사용하므로 값을 다르게 가져와야하기 때문에 공급자의 사용자 지정 구현을 만드는 것이 좋습니다. WinForm 응용 프로그램이 여러 창을 동시에 표시 할 수 있기 때문에 까다로운 작업이 될 수 있습니다. 한 번에 하나의 창만 표시된다는 것을 알고 있다면 SiteMap API에 액세스하기 전에 설정된 정적 값을 사용할 수 있습니다.

이제 모든 작업을 수행해야하는 경우 API 사용의 가치에 대해 질문해야합니다. 보람있는 것만으로는 충분하지 않을 수도 있습니다.

관련 문제