internal void AddXamlType(Int16 typeId, Int16 assemblyId, string typeName, TypeInfoFlags flags) { if (typeId < 0) { throw new ArgumentOutOfRangeException("typeId"); } if (typeName == null) { throw new ArgumentNullException("typeName"); } lock (_syncObject) { if (typeId == _bamlType.Count) { BamlType type = new BamlType(assemblyId, typeName); type.Flags = flags; _bamlType.Add(type); } else if (typeId > _bamlType.Count) { throw new ArgumentOutOfRangeException("typeId", SR.Get(SRID.TypeIdOutOfSequence, typeId)); } } // Duplicate IDs (typeID < _bamlType.Count) are ignored }