SilverLight 2.0 Beta 1 Relative Uri problem
Yay! My first real SilverLight post :)
Anyway, the problem is with controls in SilverLight that expect an URI as a parameter. It doesn't work. After trying all kind of stuff and googling a litle I found out that
This link already discusses it: Silverlight 2.0 Beta 1 Uri inconsistency, but I also have an additional solution to the ones listed there.
Here are the solutions for this:
Of these three, the last I find the most elegant, even if the setup of the website itself might be rendered a lot more difficult by this.
Anyway, the problem is with controls in SilverLight that expect an URI as a parameter. It doesn't work. After trying all kind of stuff and googling a litle I found out that
- the path is relative to the web application ClientBin directory
- the path cannot contain .. or other directory/URI navigation markers like ~
- the SilverLight control does not have access to a Request object like a web page does
This link already discusses it: Silverlight 2.0 Beta 1 Uri inconsistency, but I also have an additional solution to the ones listed there.
Here are the solutions for this:
- Provide an absolute Uri either statically or by generating it with this piece of code:
New Uri(Application.Current.Host.Source.AbsolutePath + "../../../video.wmv", UriKind.Absolute)
- Copy the images, videos, files into the ClientBin directory then only provide their name
- Create virtual directories inside ClientBin that point to your resource directories. For example create a virtual directory Videos that points to the ~/Resources/Videos folder in the site, then simply use Videos/video.wmv as the URI
Of these three, the last I find the most elegant, even if the setup of the website itself might be rendered a lot more difficult by this.
Comments
Be the first to post a comment