/// <summary>Adds a new complex type (without any properties).</summary> /// <param name="name">The name of the type.</param> /// <param name="instanceType">The instance type or null if this should be untyped resource.</param> /// <param name="baseType">The base type.</param> /// <param name="isAbstract">If the type should be abstract.</param> /// <returns>The newly created complex type.</returns> public IEdmComplexType AddComplexType(string name, Type instanceType, IEdmComplexType baseType, bool isAbstract, string nameSpace) { EdmComplexType complexType = new EdmComplexType( this.namespaceName, name, baseType, isAbstract); this.complexTypes.Add(complexType.FullName(), complexType); if (complexType.BaseType != null) { List<IEdmStructuredType> derivedTypes; if (!this.derivedTypeMappings.TryGetValue(complexType.BaseType, out derivedTypes)) { derivedTypes = new List<IEdmStructuredType>(); this.derivedTypeMappings[complexType.BaseType] = derivedTypes; } } return complexType; }