/// <summary> /// Registers the given <see cref="DynamicObjectType"/> with this /// <see cref="DynamicMetadataProvider"/>. /// </summary> /// <param name="metadataProvider"></param> /// <param name="objType"></param> public void RegisterObjectType(IMetadataProvider metadataProvider, DynamicObjectType objType) { if (objType == null) { throw new ArgumentNullException(nameof(objType)); } if (this.objTypes.ContainsKey(objType.FullName)) { var msg = string.Format("{0} is already registered with this dynamic metadata provider", objType.FullName); throw new InvalidOperationException(msg); } // Attach the metadata provider if (metadataProvider == null) { metadataProvider = this; } objType.AttachMetadataProvider(metadataProvider); this.objTypes.Add(objType.FullName, objType); }