Hi,
The following link contains an example:
CompilerParameters.EmbeddedResources Property
http://msdn2.microsoft.com/en-us/li...ler.compilerparameters.embeddedresources.aspx
To create the resource file you can write it to a temporary file on disk for
use with the CodeDOM:
.NET Framework Class Library
ResourceWriter Class
http://msdn2.microsoft.com/en-us/library/system.resources.resourcewriter(VS.80).aspx
Here's an example that I've derived based on the links above (your
serialized xml can be a byte[] or string here):
string temp = Path.Combine(Path.GetTempPath(),
Path.GetTempFileName());
try
{
using (FileStream stream = new FileStream(temp))
// Unfortunately, the EmbeddedResources property is a
// StringCollection and accepts only file paths, not resource
// streams, so MemoryStream can't be used here
{
using (ResourceWriter writer = new ResourceWriter(stream))
{
// your xml can be byte[] or a string
writer.AddResource("name", yourXml);
writer.AddResource("name2", yourXml2);
}
}
CompilerParameters cp = new CompilerParameters();
// provider is an instance of CodeDomProvider
if (provider.Supports(GeneratorSupport.Resources))
{
cp.EmbeddedResources.Add(temp);
}
...
CompilerResults cr =
provider.CompileAssemblyFromFile(cp, sourceFile);
...
}
finally
{
File.Delete(temp);
}
I haven't tested the code myself so beware
--
Dave Sexton
http://davesexton.com/blog
CodeLeon said:
Thank you for your reply. It is much appreciated. So, how would I do
this programatically, usang an ICodeCompiler or similar class? How
would I use a simple (ie, serialized) XML file?
Thanks again!