2010-10-24 8 views
0

Je ne connais pratiquement rien du URI class. J'ai besoin de faire un URI relatif pour référencer un fichier dans mon projet (c'est à la racine du projet).Classe URI 101 - Référence de projet relatif

Comment puis-je faire cela?

C'est ce que je l'ai essayé et il ne semble pas fonctionner:

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

J'ai aussi essayé:

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

Lorsque j'examine ma variable uri dans le débogueur, il a jeté un beaucoup d'exceptions. La seule valeur qui est réelle est la valeur de texte d'origine.

Que dois-je faire pour en faire un uri valide? Je pense que je ne comprends pas comment fonctionne un objet Uri.

Je suppose que je vous demande les rudiments de la façon de faire une uri et le faire référence à un fichier dans mon projet (avec des avoir à coder en dur le chemin complet du dossier C: \. Lecteur

+0

Que signifie le « 101 » dans le titre? – Timwi

+0

@Timwi: "101" signifie "introduction". Comme dans une classe de programmation d'introduction à l'université: "Computer Science 101". –

Répondre

2

Votre application est-elle une application Web? Vous n'utilisez pas d'URI pour référencer des fichiers locaux dans des applications non Web.

L'expression

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

Est-ce pas jeter des exceptions sur la construction, il jette plus tard, quand il est utilisé de manière incorrecte. Puisque vous avez mentionné que vous développez une application WPF, si vous souhaitez localiser ce fichier, vous devez utiliser:

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

Que signifie "ne fonctionne pas"? Les deux exemples de code se compilent et s'exécutent, donnant des URI relatifs valides

Ou peut-être voulez-vous créer des URI absolues à partir des URIs relatives, c'est-à-dire si votre racine est "http: // exemple .com ", vous voulez créer" http://example.com/ModuleCatalog.xaml "Dans ce cas, utilisez la surcharge Uri.TryCreate qui vous permet de passer à la racine. Par exemple:

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

"Ne fonctionne pas" signifie que "lorsque j'examine ma variable uri dans le débogueur, il y a beaucoup d'exceptions". Lorsque j'essaie de l'utiliser dans le code, il trouve le fichier. – Vaccano

+0

Je fais une application WPF qui n'est pas un site web. Ne devrais-je pas utiliser un uri si ce n'est pas un site web? – Vaccano

Questions connexes