[*] Make private [RuleMethodWithAttribute] and [MatchMethodWithAttribute] classes.
[*] Move all code that make dynamic invoke in [DynamicInvoker] class.
[!] Use [instance] field for invoking.
[*] Remove direct use of [RuleMethodAttribute] attribute in [RuleMethodWithAttribute] class.
[*] Remove direct use of [MatchMethodAttribute] attribute in [MatchMethodWithAttribute] class.
[+] Add [instanceType] field.
[*] Rename [RuleMethodWithAttribute] and [MatchMethodWithAttribute] to [RuleMethodDescription] and [MatchMethodDescription].
[*] Encapsulate field of nested classes.
[-] Remove [MatchMethodDescription] and use common [MethodDescription] class.
[*] Extract [GetRuleMethodDescriptions] and [GetMatchMethodDescriptions] methods.
[*] Move all code about dynamic invoke rules in separate class [DynamicInvoker].
[*] Test [DynamicInvoker] instead of [GeneratorBase].
[*] Move [InvokerTest] to [InvokerTests] folder.
[*] Test [DynamicInvoker] instead of [GeneratorBase].
[+] Add [GenerateInvoke] rule and use it.
[+] Add [CallTest].
[*] If [Parameters] is [null] or [empty] than generate call with empty parameter list.
[+] Add [EmptyAndNullParametersTest] test.
[+] Add [IsNullOrWhiteSpace] method exported from [.NET Framework 4] sources.
[*] Rename [EmptyAndNullParametersTest] to [NullOrWhitespaceParametersTest] and add testing for whitespace.