public override Json.Expression ToJson(SerializationDomain domain) { var declType = DeclaringType.ToJson(); if (!domain.IsV08) { var indexParameterTypes = _property.IndexParameterTypes; var indexParameterCount = indexParameterTypes.Count; var indexParameterList = new Json.Expression[indexParameterCount]; for (var i = 0; i < indexParameterCount; i++) { indexParameterList[i] = domain.AddType(indexParameterTypes[i]).ToJson(); } var indexParameters = Json.Expression.Array(indexParameterList); if (_property.PropertyType != null) { var propType = domain.AddType(_property.PropertyType).ToJson(); return(Json.Expression.Array( Discriminators.MemberInfo.PropertyDiscriminator, declType, Json.Expression.String(_property.Name), indexParameters, propType )); } else { return(Json.Expression.Array( Discriminators.MemberInfo.PropertyDiscriminator, declType, Json.Expression.String(_property.Name), indexParameters )); } } else { return(Json.Expression.Array( Discriminators.MemberInfo.PropertyDiscriminator, declType, Json.Expression.String(_property.Name) )); } }
public override Json.Expression ToJson(SerializationDomain domain) { if (!domain.IsV08 && _field.FieldType != null) { return(Json.Expression.Array( Discriminators.MemberInfo.FieldDiscriminator, DeclaringType.ToJson(), Json.Expression.String(_field.Name), domain.AddType(_field.FieldType).ToJson() )); } else { return(Json.Expression.Array( Discriminators.MemberInfo.FieldDiscriminator, DeclaringType.ToJson(), Json.Expression.String(_field.Name) )); } }
public Json.Expression AddType(Type type) { return(_domain.AddType(type).ToJson()); }