// Assumes that GetKnownXamlType was called first
        private XamlType GetUnknownXamlType(Type type)
        {
            XamlType xamlType;

            lock (_syncObject)
            {
                if (!_masterTypeTable.TryGetValue(type, out xamlType))
                {
                    WpfSharedXamlSchemaContext.RequireRuntimeType(type);
                    xamlType = new WpfXamlType(type, this, true, true);
                    _masterTypeTable.Add(type, xamlType);
                }
            }
            return(xamlType);
        }
Esempio n. 2
0
        // Token: 0x060015AB RID: 5547 RVA: 0x0006A34C File Offset: 0x0006854C
        public override XamlType GetXamlType(Type type)
        {
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }
            object   syncObject = this._syncObject;
            XamlType xamlType;

            lock (syncObject)
            {
                if (!this._masterTypeTable.TryGetValue(type, out xamlType))
                {
                    WpfSharedXamlSchemaContext.RequireRuntimeType(type);
                    xamlType = base.CreateKnownBamlType(type.Name, false, this._useV3Rules);
                    if (xamlType == null || xamlType.UnderlyingType != type)
                    {
                        xamlType = new WpfXamlType(type, this, false, this._useV3Rules);
                    }
                    this._masterTypeTable.Add(type, xamlType);
                }
            }
            return(xamlType);
        }