コード例 #1
0
        private static void WriteMember(string name, XmlRpcValue value, IValueWriters writers, XElement element)
        {
            var writer = writers.GetWriter(value.GetType());

            var nameElement = new XElement(XmlRpcTags.Name);

            nameElement.Add(name);
            element.Add(nameElement);

            writer.WriteTo(element, value);
        }
コード例 #2
0
        protected ModelWriterBase(IValueWriters writers)
        {
            Ensure.IsNotNull(writers, nameof(writers));

            Writers = writers;
        }
コード例 #3
0
 public ArrayValueWriter(IValueWriters writers) : base(XmlRpcTags.Array, (value, element) => WriteToElement(value, element, writers))
 {
 }
コード例 #4
0
        private static void WriteElement(XmlRpcValue value, XElement dataElement, IValueWriters writers)
        {
            var writer = writers.GetWriter(value.GetType());

            writer?.WriteTo(dataElement, value);
        }
コード例 #5
0
 private static void WriteToElements(IEnumerable <XmlRpcValue> array, XElement dataElement, IValueWriters writers)
 {
     array.ForEach(value => WriteElement(value, dataElement, writers));
 }
コード例 #6
0
        private static void WriteToElement(XmlRpcValue <IEnumerable <XmlRpcValue> > value, XContainer element, IValueWriters writers)
        {
            var dataElement = new XElement(XmlRpcTags.Data);

            WriteToElements(value.Value, dataElement, writers);

            element.Add(dataElement);
        }
コード例 #7
0
 public StructValueWriter(IValueWriters writers) : base(XmlRpcTags.Struct, (value, element) => WriteToElement(value, element, writers))
 {
 }
コード例 #8
0
        private static void WriteToElement(XmlRpcValue <IDictionary <string, XmlRpcValue> > value, XContainer element, IValueWriters writers)
        {
            foreach (var(key, xmlRpcValue) in value.Value)
            {
                var memberElement = new XElement(XmlRpcTags.Member);

                WriteMember(key, xmlRpcValue, writers, memberElement);

                element.Add(memberElement);
            }
        }
コード例 #9
0
 public RequestModelWriter(IValueWriters writers) : base(writers)
 {
 }
コード例 #10
0
 public ResponseModelWriter(IValueWriters writers) : base(writers)
 {
 }