It handles when base class implements INotifyPropertyChanged.
I also checked if any of the current interfacs inherit from
INotifyPropertyChanged

and here is the code that derives dependencies
http://code.google.com/p/notifypropertyweaver/source/browse/trunk/NotifyPropertyWeaverMsBuildTask/IlGeneratedByDependencyReader.cs

On Tue, Feb 15, 2011 at 9:20 PM, David Turczi <[email protected]> wrote:
> Yeah, I mainly do it to learn, and also my requirements were simple.
> But it would be interesting to see how the referenced addin finds
> FullName to be raised on GivenName's change... Maybe someday I'll look
> into it.
> (Also it doesnt mention anything about what if the BASE class
> implements INotifyPropertyChanged...)
>
> On febr. 15, 11:01, Simon Cropp <[email protected]> wrote:
>> David
>>
>> While I recommend  playing with IL for a learning experience if you
>> want to use an existing library you can try 
>> thishttp://visualstudiogallery.msdn.microsoft.com/bd351303-db8c-4771-9b22...http://code.google.com/p/notifypropertyweaver/
>>
>>
>>
>>
>>
>>
>>
>> On Tue, Feb 15, 2011 at 8:16 PM, David Turczi <[email protected]> wrote:
>> > Hi!
>>
>> > I'm working on weaving property notification using mono-cecil. My
>> > first problem was calling a base class method, when the base class is
>> > in an other assembly. Then, I got help on StackOverflow (from Jb
>> > Evain):
>>
>> > TypeDefinition type = ...;
>> > TypeDefintion baseType = type.BaseType.Resolve ();
>> > MethodDefinition baseMethod = baseType.Methods.First (m => ...);
>> > MethodReference baseMethodReference = type.Module.Import (baseMethod);
>> > il.Emit (OpCodes.Call, baseMethodReference);
>>
>> > Now, I have a similiar problem: I'm trying to call a GENERIC base
>> > class' method. Like this:
>>
>> > //in Assembly A
>> > class BaseVM<T> {}
>>
>> > //in Assembly B
>> > class MyVM : Base<SomeModel> {
>> >  [NotifyProperty]
>> >  public string Something {get;set;}
>> > }
>>
>> > It weaves the following code:
>>
>> > L_000e: call instance void
>> > [AssemblyA]Base`1::RaisePropertyChanged(string)
>> > instead of
>> > L_000e: call instance void [AssemblyA]Base`1<class
>> > SomeModel>::RaisePropertyChanged(string)
>>
>> > What is there to change?
>>
>> > --
>> > --
>> > mono-cecil
>
> --
> --
> mono-cecil

-- 
--
mono-cecil

Reply via email to