Implement With method
Implement With method overload
Add AttributeCollection class
Use ToMaybe instead of constructor
Implement AttributeCollection.Get<>
Extract interface
Add InjectionTargetBase class
Implement InjectionTargetBase.Ctor
Implement MemberTarget class
Implement GetTargets MemberTarget overload
Implement get member targets with predicate
Implement PropertyTarget class
Implement new GetPropertyTarget
Implement GetFieldTargets
Update With method. Remove obsolete code
Implement MethodTarget class