Find, execute, and create types at runtime by using reflection

You need to create an attribute that can be applied multiple times on a method or a parameter. Which syntax should you use?

[AttributeUsage(AttributeTargets.GenericParameter | AttributeTargets.Method, AllowMultiple = true)]
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter, AllowMultiple = true)]
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)]
[AttributeUsage(AttributeTargets.All)]