2010-10-24 1 views
0

Я почти ничего не знаю о URI class. Мне нужно сделать относительный URI, чтобы ссылаться на файл в моем проекте (то есть на корень проекта).URI Класс 101 - Относительный проект Ссылка

Как я могу это сделать?

Это то, что я пытался, и это, кажется, не работает:

var uri = new Uri("ModuleCatalog.xaml", UriKind.Relative) 

Я также попытался:

var uri = new Uri("/ShellProject;component/ModuleCatalog.xaml", UriKind.Relative); 

Когда я анализирую свою uri переменную в отладчике он метнул много исключений. Единственное значение, которое является реальным, - это исходное значение текста.

Что нужно сделать, чтобы сделать его действительным uri?

Я думаю, что я не понимаю, как работает объект Uri.

Я предполагаю, что я прошу основы того, как сделать Ури и иметь его ссылку на файл в моем проекте (с вне того, чтобы жестко закодировать полный путь от C:. \ Диск

+0

Что означает «101» в названии означает? – Timwi

+0

@Timwi: «101» означает «Вводный». Как и во вступительном классе программирования в университете: «Computer Science 101». –

ответ

2

Является ли ваше приложение веб-приложением? Вы не используете URI для ссылки на локальные файлы в не-веб-приложениях.

Выражение

var uri = new Uri("ModuleCatalog.xaml", UriKind.Relative) 

Не бросайте исключений на строительство, он выбрасывает позже, когда он используется ненадлежащим образом. Поскольку вы упомянули вы разрабатываете приложение WPF, если вы хотите, чтобы найти этот файл, вы должны использовать:

string assemblyLocation = Assembly.GetExecutingAssembly().Location 
string moduleCatalogPath = Path.Combine(assemblyLocation, "ModuleCatalog.xaml"); 
0

Что означает «не работает»? Оба примера кода скомпилированы и запущены, давая действительные относительные URI.

Возможно, вы хотите сделать абсолютные URI из относительных URI? То есть, если ваш корень является «http: // example .com ", вы хотите создать« http://example.com/ModuleCatalog.xaml ». В этом случае используйте перегрузку Uri.TryCreate, которая позволяет вам проходить в корне. Например:

Uri baseUri = new Uri("http://example.com"); 
Uri newUri; 
if (Uri.TryCreate(baseUri, "ModuleCatalogue.xaml", out newUri)) 
{ 
    // Uri created successfully 
} 
+0

«Не работает» означает, что «когда я проверяю мою переменную uri в отладчике, она забросила множество исключений». Также, когда я пытаюсь использовать ее в коде, он находит файл. – Vaccano

+0

Я делаю приложение WPF, которое не является веб-сайтом. Должен ли я использовать uri, если это не веб-сайт? – Vaccano