We are pleased to release version 2.0 of Fasterflect, which contains a lot of additions and improvements from the previous version. Please refer to the project wiki
for complete documentation about the features of Fasterflect 2.0.
- Wrapper query API to .NET reflection to make the query of .NET metadata much easier, yet sophisticated
- Integration between the invocation API (aka access API) and .NET reflection class such as MethodInfo, ConstructorInfo, MemberInfo etc. For example, you can perform query using Fasterflect to retrieve a MethodInfo (using the above query API), examine it and then invoke it, fully leveraging the faster CIL generation engine of Fasterflect.
- Additional services such as advanced object construction, deep cloning and object mapping.
- Both query API and invocation API (including delegate API) accept Flags which allows you to control many aspects of the lookup & invocation.
- Many existing extension methods have their names changed as we went through the process of assuring API consistency & usability, especially when we have added so many things into Fasterflect since 1.1. Since now we have 2 developers agree on these standards, instead of 1 as with 1.1 and prior, we hope you like the new standards better. (Of course, you would have to make some code change when switching from 1.1 to 2.0, but the changes should be very straight-forward in most cases except for the things mentioned in other changes below.)
- Fasterflect extension methods now don't require a type parameter, which we have found to be inconvenient because people are forced to append <object> to the call even when they don't care about the return value or its type. Now, these methods simply return object and you can cast to the correct type if you want that.
- Batch fields/properties set are gone. They are replaced by object mapping which are more flexible, sophisticated and faster (code gen behind the scene) . Batch setting of static members is not supposed because we think it's a rare scenario - do let us know if you have this need and we add support for that in the next minor release.
- The class Reflector and its methods are now gone. We instead employ a custom-built weak reference-based cache to assure that generated CIL can be GC'ed when memory is low.