views:

54

answers:

2

Hello

I want to add some xml file as resource to my class library project . Any idea how to do so , and call it later? In windows application i would do it like ClassLibrary1.Properties.Resources.file.xml

But here it didn't worked any idea how i do it here ?

+1  A: 

This article explain how to use embedded resources in C#.

It boils down to

  1. At 'Design time': Add file to project and mark it as an embedded resource (properties)
  2. At 'Run time': Get instance of Assembly that holds the resource you want, then get that resource out as a stream.

var assembly = Assembly.GetExecutingAssembly();

var stream = _assembly.GetManifestResourceStream("fully.qualified.name.of.the.resource");

If you're struggeling to work out the fq name of the resource, a lazy way is to use the reflector to open the assembly that holds it. Go to the Resources folder, right click on the particular resource and choose 'Copy'.

FrederikB
A: 

In windows application i would do it like ClassLibrary1.Properties.Resources.file.xml

By default, the class generated to access the resources is internal, so you can't access it from another assembly. If you need to make it public, select the .resx file, go to its properties, and change the Custom tool property from "ResXFileCodeGenerator" to "PublicResXFileCodeGenerator". This custom tool generates public classes, which should solve your problem.

Thomas Levesque