public void MatchSingle() { AspectDefinition def = new AspectDefinition(LexicalInfo.Empty, "Wilber"); TypeReference typeRef = new TypeReference(LexicalInfo.Empty, ""); typeRef.ResolvedType = typeof(Stack); def.TargetType = new TargetTypeDefinition( typeRef ); Assert.IsFalse( SingleTypeMatcher.Instance.Match( typeof(Object), def ) ); Assert.IsFalse( SingleTypeMatcher.Instance.Match( typeof(IList), def ) ); Assert.IsFalse( SingleTypeMatcher.Instance.Match( typeof(ArrayList), def ) ); Assert.IsTrue( SingleTypeMatcher.Instance.Match( typeof(Stack), def ) ); }
public void MatchNamespaceWithExcludes() { AspectDefinition def = new AspectDefinition(LexicalInfo.Empty, "Wilber"); def.TargetType = new TargetTypeDefinition(); def.TargetType.TargetStrategy = TargetStrategyEnum.Namespace; def.TargetType.NamespaceRoot = "System.Collections"; TypeReference typeRef = new TypeReference(LexicalInfo.Empty, ""); typeRef.ResolvedType = typeof(Stack); def.TargetType.Excludes.Add( typeRef ); Assert.IsTrue( NamespaceMatcher.Instance.Match( typeof(IList), def ) ); Assert.IsTrue( NamespaceMatcher.Instance.Match( typeof(ArrayList), def ) ); Assert.IsFalse( NamespaceMatcher.Instance.Match( typeof(Stack), def ) ); }
public void MatchAssignable() { AspectDefinition def = new AspectDefinition(LexicalInfo.Empty, "Wilber"); def.TargetType = new TargetTypeDefinition(); def.TargetType.TargetStrategy = TargetStrategyEnum.Assignable; TypeReference typeRef = new TypeReference(LexicalInfo.Empty, ""); typeRef.ResolvedType = typeof(IList); def.TargetType.AssignType = typeRef; Assert.IsFalse( AssignableMatcher.Instance.Match( typeof(Object), def ) ); Assert.IsFalse( AssignableMatcher.Instance.Match( typeof(HybridDictionary), def ) ); Assert.IsTrue( AssignableMatcher.Instance.Match( typeof(IList), def ) ); Assert.IsTrue( AssignableMatcher.Instance.Match( typeof(ArrayList), def ) ); Assert.IsFalse( AssignableMatcher.Instance.Match( typeof(Stack), def ) ); }
public override void OnTypeReferenceDefinition(TypeReference type) { if (type.TargetType == TargetTypeEnum.Type) { base.OnTypeReferenceDefinition (type); if (type.AssemblyReference == null) { type.ResolvedType = _typeManager.ResolveType( type.TypeName ); } else { type.ResolvedType = LoadType( type.TypeName, type.AssemblyReference.ResolvedAssembly.FullName, type.LexicalInfo ); } } }
public TargetTypeDefinition( TypeReference typeRef ) : this() { SingleType = typeRef; }
public void Add(TypeReference type) { InnerList.Add(type); }