2009-06-29 9 views
0

Ist es möglich, einen relativen URI zu verwenden, wenn die Eigenschaft Source auf einem XmlDataProvider-Objekt in .NET festgelegt wird? Ich erhalte die folgende Ausnahme:Verwenden der relativen URI als Quelle des XmlDataProviders

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

Wenn ich die Source Eigenschaft eine absolute URI, alles wie erwartet funktioniert:

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

Jedoch, wenn ich mit einer relativen versuchen URI ich die Ausnahme erhalten:

Meine Assemblys befinden sich alle im selben Verzeichnis wie die Konfigurationsdatei. Was ist hier falsch?

Antwort

1

Versuchen Sie Folgendes: FileInfo file = new FileInfo ("configuration.xml"); provider.Source = neu System.Uri (file.FullName);

0

Ja, das Folgende löst sowohl das Laden von Dokumenten als auch die Verwendung relativer Quellpfadprobleme. Mit Hilfe eines XmlDataProvider, die in XAML definiert ist, so dass die Quelle leer (sollte auch in Code möglich sein):

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

Der Datenanbieter lädt das Dokument automatisch, sobald die Quelle eingestellt ist. Hier ist der Code:

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); 
Verwandte Themen