Is there a way of reading the definition without having to go to the 
assembly's location and reading the binary? 
Like having Cecil resolve it using just a name and a version number? 
The assembly is referenced in the assembly I'm modifying (It's just System).

On Monday, July 27, 2015 at 5:06:40 PM UTC+3, Jb Evain wrote:
>
> Ah I think I see. 
>
> That must be because you're using the System.Reflection type system. 
>
> To achieve what you want, you simply need to use the Cecil type system. 
>
> Read the AssemblyDefinition for the assembly that contains the 
> DescriptionAttribute, and import a reference to the MethodDefinition 
> constructor into your module. 
>
> Jb 
>
> On Mon, Jul 27, 2015 at 3:52 PM, Greg Rosenbaum <[email protected] 
> <javascript:>> wrote: 
> > Okay, let me try to explain it again, and this time giving a specific 
> > example. I want to attach, say, DescriptionAttribute to an assembly I'm 
> > modifying. 
> > I need to attach the version of that attribute which is compatible with 
> that 
> > assembly's target framework version (changing the target framework, even 
> if 
> > I wanted to do this, probably isn't possible in this case). 
> > In order to do this, I must get a TypeReference to this attribute's 
> type. 
> > I'm having trouble getting a TypeReference to the correct version of the 
> > attribute that comes from the correct assembly. Whatever I do, I can 
> only 
> > manage to get a reference to the newer type (the one that is referenced 
> by 
> > my modifying assembly). 
> > 
> > On Monday, July 27, 2015 at 3:30:05 PM UTC+3, Jb Evain wrote: 
> >> 
> >> Hey Greg, 
> >> 
> >> I'm not 100% sure I understand your description of the issue, but you 
> >> can't use a type defined in a newer version of the .NET framework in 
> >> an assembly targeting an older version. 
> >> 
> >> Is this what you're trying to do? 
> >> 
> >> If so, you'll need to change the target framework for the assembly, 
> >> and fix up its references to the newer version, but it can get hairy 
> >> if you're using 3rd party assemblies. 
> >> 
> >> Jb 
> >> 
> >> 
> >> 
> >> On Sun, Jul 26, 2015 at 6:20 PM, Greg Rosenbaum <[email protected]> 
> >> wrote: 
> >> > Hey there. I've sort of run into a problem, and I'm wondering if 
> anyone 
> >> > can 
> >> > help me. 
> >> > 
> >> > I'm trying to modify an assembly that uses framework version 3.5, but 
> I 
> >> > don't want to be limited to that framework myself. I want to embed 
> some 
> >> > attributes into it, and to do that I need to get references to their 
> >> > types, 
> >> > from the correct assembly version. The attributes are standard .NET 
> >> > attributes and their assemblies live in the GAC. 
> >> > 
> >> > I can't seem to manage to do that. I can't import my own types, 
> because 
> >> > they're from a higher version assembly, and I trying to get the 
> correct 
> >> > assembly by name (using Module.AssemblyResolver.Resolve), doesn't 
> seem 
> >> > to 
> >> > work, even if I specify the exact version I want. It just resolves 
> the 
> >> > wrong 
> >> > assembly. 
> >> > 
> >> > The only thing that seemed to work was using 
> >> > System.Reflection.Assembly.ReflectionOnlyLoad to load the assembly 
> from 
> >> > its 
> >> > AssemblyName (version + name), and using that FullName (which 
> includes 
> >> > the 
> >> > public key) to resolve the assembly using AssemblyResolver. However, 
> >> > this 
> >> > doesn't work properly either, because then the modified assembly gets 
> an 
> >> > indirect dependency on a higher version of mscorlib, somehow. Also, 
> this 
> >> > seems like a really roundabout way to do this. 
> >> > 
> >> > -- 
> >> > -- 
> >> > -- 
> >> > 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. 
>

-- 
-- 
--
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