/// <summary> /// Override the default property names and use the given ones instead of serialization. /// </summary> public void SetProperties(params string[] propertyNames) { Properties = new fsMetaProperty[propertyNames.Length]; for (var i = 0; i < propertyNames.Length; ++i) { var members = ReflectedType.GetFlattenedMember(propertyNames[i]); if (members.Length == 0) { // We silently fail here b/c there could be stripping applied // on the platform that removed the member continue; } if (members.Length > 1) { throw new InvalidOperationException("More than one property matches " + propertyNames[i] + " on " + ReflectedType.Name); } var member = members[0]; if (member is FieldInfo) { Properties[i] = new fsMetaProperty((FieldInfo)member); } else { Properties[i] = new fsMetaProperty((PropertyInfo)member); } } }
private static string GetConverterString(fsMetaProperty member) { if (member.OverrideConverterType == null) { return("null"); } return(string.Format("typeof({0})", member.OverrideConverterType.CSharpName(/*includeNamespace:*/ true))); }