LordVeovis / xmlrpc

A port of CookComputing.XmlRpcV2 for dotnet core 2
MIT License
33 stars 21 forks source link

Optional params #11

Open valterss opened 5 years ago

valterss commented 5 years ago

Add NonStandard option AllowNull to allow serialization of method calls with NULL values in parameters. It is well supported XML-RPC extension: https://web.archive.org/web/20130120074804/http://ontosys.com/xml-rpc/extensions.php

LordVeovis commented 5 years ago

Seems it's the same functionality as #13, but more polished here. I like the AllowNull attribute to explicitely enable the nil non-standard feature.

valterss commented 5 years ago

Seems it's the same functionality as #13, but more polished here. I like the AllowNull attribute to explicitely enable the nil non-standard feature.

Python implementation has this approach as well, and I like that this non-standard feature is not enabled by default too. This is different from #13 as #13 is about deserializing response data which have NULL values. This (#11) allows to send NULL values as parameters of method in the XML-RPC request. However, I thing #13 could be more polished if deserialization would take XmlRpcMissingMapping(MappingAction.Ignore) attribute into account for data deserialization. For example:

public class MyResult
{
    public string propertyOne;
    [XmlRpcMissingMapping(MappingAction.Ignore)] // don't care if server don't return this field
    public string propertyTwo;
}

Solution could allow NULL (\<nil/>) for propertyTwo but does not allow NULL for propertyOne and rise exception as in standard behavior. Of course, if I understand the project correctly.

alecthegeek commented 4 years ago

Should this be closed?