First and foremost I would like to say that the Cecil project is an 
outstanding piece of work and I'm really glad I came across it, I feel like 
I learned a lot working with it.  I humbly tip my hat to the author(s.)

I've written and published a development utility which relies on Cecil to 
rewrite assemblies and add property change notification using attributes as 
a mechanism to control the implementation of this behavior.  My goal isn't 
to advertise my component so before I get into where it is or the specifics 
of what it does I'll say that as users of the Cecil you may be interested 
in it as a (hopefully not terrible) example of ways one might do the 
following:

   - Read & rewrite assemblies.
   - Working with attributes.
   - Traversing a hierarchy of inherited classes through multiple 
   assemblies.
   - Creating new methods.
   - Copying IL from one method to another.
   - Performing value comparison "correctly" for value & reference types, 
   respecting overridden "Equals" methods, etc.
   - Identifying and handling calls to overridden methods.
   - Using a weaver as a build action.
   - Creating a nuget package with an installation script to add references 
   & modify the project file to include the build action.

The project is Mathtone.MIST:

Code: https://github.com/mathtone/MIST <https://github.com/mathtone/MIST>

Nuget: https://www.nuget.org/packages/Mathtone.MIST/ 
<https://www.nuget.org/packages/Mathtone.MIST/> 

install-package Mathtone.Mist


In short, it modifies properties and adds a call to notification method 
automatically (there are some similar frameworks out there like PostSharp 
and Fody, but I think this implementation is novel), also doing things like 
optionally suppressing notification for values being set that haven't 
changed.  The intended use is in building MVVM applications, where it can 
conveniently add notification to auto-implemented properties but I've used 
it successfully to do other things like audit tracking as well.  I use this 
library all the time and I've gotten positive feedback from others who have 
come across it as well.

 

 

-- 
-- 
--
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 mono-cecil+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to