2009-06-29 2 views
0

Возможно ли использовать относительный URI при настройке свойства Source на объект XmlDataProvider в .NET? Я получаю следующее исключение:Использование относительного URI в качестве источника XmlDataProvider

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

Когда я установил Source свойство, используя абсолютный URI, все работает, как ожидалось:

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

Однако при попытке использования относительный URI я получаю исключение:

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

Мои сборки расположены в том же каталоге, что и файл конфигурации. Что здесь не так?

ответ

1

Попробуйте следующее: FileInfo file = new FileInfo ("configuration.xml"); provider.Source = новый System.Uri (file.FullName);

0

Да, следующее решение позволяет как загружать документы, так и использовать относительные проблемы с источником. Использование XmlDataProvider, который определен в XAML, оставляя источник пустым (должно быть возможно в коде тоже):

<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); 
Смежные вопросы