public Type FindType(TypeKey key) { foreach (Type type in _genericParameterTypes) { if (type.Key.Equals(key)) return type; } foreach (Type type in _types) { if (type.Key.Equals(key)) return type; } return null; }
public Type AddType(TypeKey key) { Type type = new Type(this, key); if (key is GenericParameterTypeKey) { _genericParameterTypes.Add(type); } else { _types.Add(type); } return type; }
protected MemberKey(TypeKey typeKey, string name) { _typeKey = typeKey; _name = name; }
public EventKey(TypeKey typeKey, string name) : base(typeKey, name) { }
public FieldKey(TypeKey typeKey, string name) : base(typeKey, name) { }
public MethodKey(TypeKey typeKey, string name) : base(typeKey, name) { }
public PropertyKey(TypeKey typeKey, string name) : base(typeKey, name) { }
public Type this[TypeKey typeKey] { get { return FromTypeName(typeKey); } }
public Type FromTypeName(TypeKey typeKey) { var query = from type in AllTypes where type.Key.Equals(typeKey) select type; return query.Single(); }