KeyValuePair <IStyleKey, object> ReadProperty(XElement reader, IStylePropertyContext context) { var name = reader.AttributeLocal("name")?.Value; if (string.IsNullOrWhiteSpace(name)) { throw new StyleParseException("A property element must provide the name of a style-key.", reader); } var key = LookupStyleKey(name, reader); object result; if (string.Equals(reader.AttributeLocal("inherit")?.Value, "true", StringComparison.InvariantCulture)) { result = InheritMarker.Inherited; } else { var type = reader.AttributeLocal("type")?.Value; IStylePropertySerializer serializer = null; if (type != null) { typeParsers.TryGetValue(type, out serializer); } if (serializer == null) { serializer = LookupPropertyParser(key.ValueType, reader); } result = serializer.Parse(StyleSystem, reader, context); } return(new KeyValuePair <IStyleKey, object>(key, result)); }
public void RegisterPropertyParsers(IStylePropertySerializer serializer) { propertyParsers[serializer.TargetType] = serializer; if (serializer.TypeId != null) { typeParsers[serializer.TypeId] = serializer; } typeParsers[serializer.TargetType.FullName ?? serializer.TargetType.Name] = serializer; }
bool Find(object o, out IStylePropertySerializer serializer) { foreach (var p in propertyParsers) { if (p.TargetType.IsInstanceOfType(o)) { serializer = p; return(true); } } serializer = null; return(false); }
public void RegisterSerializer(IStylePropertySerializer serializer) { parent.RegisterSerializer(serializer); }
public void RegisterSerializer(IStylePropertySerializer serializer) { this.serializers.Add(serializer); }
public void RegisterPropertyParsers(IStylePropertySerializer p) { conditionWriter.Register(p); propertyParsers.Add(p.TargetType, p); }
public void Register(IStylePropertySerializer p) { propertyParsers.Add(p); }
public void Register(IStylePropertySerializer p) { attributeWriter.Register(p); }