2009-06-29 4 views
0

.NET의 XmlDataProvider 개체에서 Source 속성을 설정할 때 상대 URI를 사용할 수 있습니까? 내가 상대 URI를 사용하려고 할 때XmlDataProvider의 소스로 상대 URI 사용

provider.Source = new Uri(@"C:\bin\Configuration.xml", UriKind.Absolute); 

그러나 나는 예외를 얻을 :

IOException:System.IO.IOException: Cannot locate resource 'configuration.xml'. 

나는 절대 URI를 사용하여 Source 속성을 설정, 모든 것이 예상대로 작동 : 나는 다음과 같은 예외가

provider.Source = new Uri(@"Configuration.xml", UriKind.Relative); 

내 어셈블리는 모두 구성 파일과 동일한 디렉터리에 있습니다. 여기 뭐가 잘못 됐니?

답변

1

시험해보기 : FileInfo file = new FileInfo ("configuration.xml"); provider.Source = new System.Uri (file.FullName);

0

예, 다음은 문서로드와 상대 소스 경로 문제를 모두 해결합니다. 빈 소스를 떠나, XAML에 정의 된 XmlDataProvider를 사용 (너무 코드 가능해야한다) : 소스가 설정되면

<Window.Resources> 
<XmlDataProvider 
    x:Name="myDP" 
    x:Key="MyData" 
    Source="" 
    XPath="/RootElement/Element" 
    IsAsynchronous="False" 
    IsInitialLoadEnabled="True"       
    debug:PresentationTraceSources.TraceLevel="High" /> </Window.Resources> 

데이터 공급자가 자동으로 문서를로드합니다. 코드는 다음과 같습니다.

m_DataProvider = this.FindResource("MyData") as XmlDataProvider; 
    FileInfo file = new FileInfo("MyXmlFile.xml"); 

    m_DataProvider.Document = new XmlDocument(); 
    m_DataProvider.Source = new Uri(file.FullName);