public XMLKeyValueTypeHandler(Type type) : base(type) { PropertyInfo keyProperty = Type.GetProperty("Key"); _keyHandler = new Lazy <XMLFieldHandler>(() => XMLHelpers.ResolveFieldHandler(keyProperty.PropertyType, new XMLReflectionHandler(keyProperty))); PropertyInfo valueProperty = Type.GetProperty("Value"); _valueHandler = new Lazy <XMLFieldHandler>(() => XMLHelpers.ResolveFieldHandler(valueProperty.PropertyType, new XMLReflectionHandler(valueProperty))); Type opaqueKeyType = XMLHelpers.GetOpaqueType(keyProperty.PropertyType, out bool opaque); _keyDefault = opaque && opaqueKeyType.IsValueType ? Activator.CreateInstance(opaqueKeyType) : null; Type opaqueValueType = XMLHelpers.GetOpaqueType(valueProperty.PropertyType, out opaque); _valueDefault = opaque && opaqueValueType.IsValueType ? Activator.CreateInstance(opaqueValueType) : null; }