@@ -97,13 +97,12 @@ public void AddSerializerType(Type root, Type contained)
9797 return ;
9898 }
9999
100- if ( ! _overrides . ContainsKey ( root ) )
100+ if ( ! _overrides . TryGetValue ( root , out var overrides ) )
101101 {
102- _overrides . Add ( root , new XmlAttributeOverrides ( ) ) ;
102+ overrides = new XmlAttributeOverrides ( ) ;
103+ _overrides . Add ( root , overrides ) ;
103104 }
104105
105- var overrides = _overrides [ root ] ;
106-
107106 overrides . Add ( contained ,
108107 new XmlAttributes { XmlRoot = new XmlRootAttribute { Namespace = contained . Namespace } } ) ;
109108
@@ -123,25 +122,32 @@ private bool HasSerializerType(Type root, Type contained)
123122 {
124123 lock ( Padlock )
125124 {
126- return _overrides . ContainsKey ( root ) && _overrides [ root ] [ contained ] != null ;
125+ if ( ! _overrides . TryGetValue ( root , out var overrides ) )
126+ {
127+ return false ;
128+ }
129+
130+ return overrides [ contained ] != null ;
127131 }
128132 }
129133
130134 private XmlSerializer GetSerializer ( Type type )
131135 {
132136 lock ( Padlock )
133137 {
134- if ( ! _overrides . ContainsKey ( type ) )
138+ if ( ! _overrides . TryGetValue ( type , out var overrides ) )
135139 {
136- _overrides . Add ( type , new XmlAttributeOverrides ( ) ) ;
140+ overrides = new XmlAttributeOverrides ( ) ;
141+ _overrides . Add ( type , overrides ) ;
137142 }
138143
139- if ( ! _serializers . ContainsKey ( type ) )
144+ if ( ! _serializers . TryGetValue ( type , out var serializer ) )
140145 {
141- _serializers . Add ( type , new XmlSerializer ( type , _overrides [ type ] ) ) ;
146+ serializer = new XmlSerializer ( type , overrides ) ;
147+ _serializers . Add ( type , serializer ) ;
142148 }
143149
144- return _serializers [ type ] ;
150+ return serializer ;
145151 }
146152 }
147153 }
0 commit comments