Hey, i got the issue resolved;I was away so couldn't post. The marshal info of the method parameter was not set correctly.I set it and all is well now :)
csk On Jun 1, 9:25 am, srcKode <[email protected]> wrote: > Hey JB , > > any clues/hints on the above? :) > > csk > > On May 30, 8:40 am, srcKode <[email protected]> wrote: > > > hi jb, > > > this is the code that i wrote to inject custom attributes from an > > existing type to a target type ... works on most of the attributes but > > for the ClassInterfaceAttribute, am also having issues with the > > MarshalAsAttribute too; unable to set the MarshalSpec > > > foreach (CustomAttribute attribute in sourceType.CustomAttributes) > > { > > IList ctorParams = > > attribute.ConstructorParameters; > > MethodReference constructor = > > targetAssembly.MainModule.Import(attribute.Constructor); > > > CustomAttribute attr = new > > CustomAttribute(constructor); > > bool resolved = attr.Resolve(); > > > for (int prmCount = 0; prmCount <= > > ctorParams.Count - 1; prmCount++) > > > attr.ConstructorParameters.Add(ctorParams[prmCount]); > > > foreach (DictionaryEntry prop in > > attribute.Properties) > > { > > attr.Properties.Add(prop.Key, prop.Value); > > attr.SetPropertyType(prop.Key.ToString(), > > targetAssembly.MainModule.Import(prop.Value.GetType())); > > } > > > foreach (DictionaryEntry field in > > attribute.Fields) > > { > > attr.Fields.Add(field.Key, field.Value); > > attr.SetFieldType(field.Key.ToString(), > > targetAssembly.MainModule.Import(field.Value.GetType())); > > } > > > destType.CustomAttributes.Add(attr); > > > } > > > csk ... > > > On May 27, 4:34 pm, Jb Evain <[email protected]> wrote: > > > > Granted that you're not showing any code, it's hard to tell you what > > > you're doing wrong :) > > > > On Fri, May 27, 2011 at 1:06 PM, srcKode <[email protected]> > > > wrote: > > > > if i just had to patch the source,what classes do you suggest I need > > > > to upgrade. > > > > Migrating to the new version may require lot of re-work for me. > > > > > On May 27, 3:08 pm, Jb Evain <[email protected]> wrote: > > > >> Hi, > > > > >> You should update to Cecil 0.9x from github. > > > > >> On Fri, May 27, 2011 at 11:55 AM, srcKode <[email protected]> > > > >> wrote: > > > >> > oops sorry,this error was when i tried to save the assembly after a > > > >> > Type was imported from other assembly. > > > > >> > On May 27, 2:33 pm, srcKode <[email protected]> wrote: > > > >> >> Hi, > > > > >> >> I am having issues when I try to import a class that is decorated > > > >> >> with > > > >> >> the [ClassInterface] attribute; > > > > >> >> below is the stack trace : > > > > >> >> StackTrace " at System.Collections.ArrayList.get_Item(Int32 > > > >> >> index)\r > > > >> >> \n > > > >> >> at > > > >> >> Mono.Cecil.ReflectionWriter.GetCustomAttributeSig(CustomAttribute > > > >> >> ca) in ..\\ReflectionWriter.cs:line 1435\r\n > > > >> >> at > > > >> >> Mono.Cecil.ReflectionWriter.VisitCustomAttributeCollection(CustomAttributeCollection > > > >> >> customAttrs) in ..\\ReflectionWriter.cs:line 666\r\n > > > >> >> at > > > >> >> Mono.Cecil.CustomAttributeCollection.Accept(IReflectionVisitor > > > >> >> visitor) in ..\\CustomAttributeCollection.cs:line 90\r\n > > > >> >> at > > > >> >> Mono.Cecil.TypeDefinition.Accept(IReflectionVisitor visitor) in .. > > > >> >> \\TypeDefinition.cs:line 558\r\n > > > >> >> at > > > >> >> Mono.Cecil.ReflectionWriter.CompleteTypeDefinitions() in ..\ > > > >> >> \ReflectionWriter.cs:line 357\r\n > > > >> >> at > > > >> >> Mono.Cecil.StructureWriter.TerminateAssemblyDefinition(AssemblyDefinition > > > >> >> asm) in ..\\StructureWriter.cs:line 242\r\n > > > >> >> at > > > >> >> Mono.Cecil.AssemblyDefinition.Accept(IReflectionStructureVisitor > > > >> >> visitor) in ..\\AssemblyDefinition.cs:line 161\r\n > > > >> >> at > > > >> >> Mono.Cecil.AssemblyFactory.WriteAssembly(AssemblyDefinition asm, > > > >> >> BinaryWriter bw) in ..\\AssemblyFactory.cs:line 133\r\n > > > >> >> at > > > >> >> Mono.Cecil.AssemblyFactory.SaveAssembly(AssemblyDefinition asm, > > > >> >> Stream stream) in ..\\AssemblyFactory.cs:line 157\r\n > > > >> >> at > > > >> >> Mono.Cecil.AssemblyFactory.SaveAssembly(AssemblyDefinition asm, > > > >> >> String file) in ..\\AssemblyFactory.cs:line 141\r\n > > > >> >> at .TypeImporter.ImportType in > > > >> >> ..\\TypeImporter.cs:line 1248" string > > > > >> >> Is it something that got to do with the Type Library Exporter ; > > > >> >> with any other custom attribute it works fine. > > > > >> > -- > > > >> > -- > > > >> > mono-cecil > > > > > -- > > > > -- > > > > mono-cecil -- -- mono-cecil
