Ændre nedarvning i kode
Jeg er ved at lave noget kode som dynamisk skal lave et proxy objekt ud fra en wsdl beskrivelse...Nedenstående kode er hvor jeg dynamisk danner min assembly - men jeg vil gerne ændre den default nedarvning med en min egen klasse!
Er dette muligt? og hvis hvordan gør man? evt. med lidt kode :-)
pft K
private Assembly CompileAssembly(ServiceDescriptionImporter descriptionImporter)
{
// a namespace and compile unit are needed by importer
CodeNamespace codeNamespace = new CodeNamespace();
CodeCompileUnit codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add(codeNamespace);
ServiceDescriptionImportWarnings importWarnings = descriptionImporter.Import(codeNamespace, codeUnit);
if (importWarnings == 0) // no warnings
{
// create a c# compiler
CodeDomProvider compiler = CodeDomProvider.CreateProvider("Demo");
// include the assembly references needed to compile
string[] references = new string[2] { "System.Web.Services.dll", "System.Xml.dll" };
CompilerParameters parameters = new CompilerParameters(references);
// compile into assembly
CompilerResults results = compiler.CompileAssemblyFromDom(parameters, codeUnit);
foreach (CompilerError oops in results.Errors)
{
// trap these errors and make them available to exception object
throw new Exception("Compilation Error Creating Assembly");
}
// all done....
return results.CompiledAssembly;
}
else
{
// warnings issued from importers, something wrong with WSDL
throw new Exception("Invalid WSDL");
}
}