protected virtual IClassMatcher ObtainClassMatcher(AspectDefinition aspect)
{
switch (aspect.TargetType.TargetStrategy)
{
case TargetStrategyEnum.SingleType:
return SingleTypeMatcher.Instance;
case TargetStrategyEnum.Assignable:
return AssignableMatcher.Instance;
case TargetStrategyEnum.Namespace:
return NamespaceMatcher.Instance;
case TargetStrategyEnum.Custom:
return ObtainCustomMatcher(aspect.TargetType);
}
// There is no way we can get here - hopefully
return null;
}