propertyType is typereference to System::String PropertyLevelArgs is Generic
On 30 май, 15:10, Stanislav <[email protected]> wrote: > Hello! I have a little problem. I have two projects that I try to > weave by my application. > these projects contains identical (in first look) applicatons, and I > want to introduce call of my object constructor. This constructor have > 3 arguments: > > public PropertyLevelArgs(Object context, String name, Func<TType> > getter, Action<TType> setter) > { > Name = name; > m_getter = getter; > m_setter = setter; > Context = context; > > } > > code: > > var propertyArgsTypeDef = > module.Import(typeof(PropertyLevelArgs<>)).MakeGenericInstanceType(property > Type); > var propArgsCtor = propertyArgsTypeDef.ReferenceMethod(m => > m.IsConstructor); > > ... > // push args > il.InsertBefore(fst, Instruction.Create(OpCodes.Newobj, > propArgsCtor)); > > Reference Method:http://pastebin.com/emptgDsi > MakeGenericInstanceType:http://pastebin.com/MgfKftEH > > BUT! :) > > I try to weave two projects. In first project all is ok, but in second > I have > IL_0020: newobj instance void class > [NSurgeon.BaseLibrary]NSurgeon.SDK.PropertyLevel.PropertyLevelArgs`1<float6 > 4>::.ctor(object, > string, > class [NSurgeon.TrainigGround]System.Func`1<!0>, > class [mscorlib]System.Action`1<!0>) > > Why System.Func`1<!0> can have wrong reference? > > On 23 май, 10:39, Jb Evain <[email protected]> wrote: > > > > > > > > > On Mon, May 23, 2011 at 8:30 AM, Simon <[email protected]> wrote: > > > In this case let say I am running in the context of .net 4 but I am > > > modifying a silverlight assembly. > > > Will "typeof (Action<,>)" cause problems? Because I will be importing the > > > .net 4 type no the silverlight type. > > > Yes it will, you have to use the Cecil type system in this case, and > > import the TypeDefinition from the SL corlib. > > > Jb -- -- mono-cecil
