Hi, I would like to extract part of a module into its own module using 
Mono.Cecil. Specifically, I want to take all types from the System.Net 
namespace within System.dll, and move them into My.System.Net.dll. Here is 
my code so far.

public static void Main(string[] args)
>
>         {
>
>             var assembly = AssemblyDefinition.ReadAssembly("System.dll");
>
>             assembly.MainModule.Name = "My.Net";
>
>
>>
>>             var def = new List<TypeDefinition> ();
>
>
>>             foreach (TypeDefinition type in assembly.MainModule.Types)
>
>             {
>
>                 if (type.Namespace.StartsWith ("System.Net")) {
>
>                     type.Namespace = type.Namespace.Replace("System.Net", 
>> "My.System.Net");
>
>                 } else {
>
>                   def.Add (type);
>
>                 }
>
>             }
>
>
>>             foreach (var type in def)
>
>             {
>
>                 assembly.MainModule.Import(type);
>
>                 assembly.MainModule.Types.Remove(type);
>
>             }
>
>
>>             assembly.Write("My.Net.dll");
>
>
>>             Console.WriteLine("OK");
>
>             Console.ReadLine();
>
>         }
>
>
The application crashes when I write the new assembly. It says :

Additional information: Member 
> 'System.Collections.Specialized.StringDictionary' is declared in another 
> module and needs to be imported
>

I tried to remedy this by adding the Import(type) call, but Im pretty sure 
Im doing it wrong. 

This is my first time using Mono.Cecil, so Im sure Im making some errors. I 
really wish there was more help online, but I understand this is a new 
venture. Any help is appreciated.

-- 
-- 
--
mono-cecil
--- 
You received this message because you are subscribed to the Google Groups 
"mono-cecil" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to