コード例 #1
0
        public XmlMethodResultReader(XmlSerializer serializer,
                                     StreamReader textReader,
                                     XmlReader reader,
                                     SerializationMethodStorage <XmlMethodsCompiler> methodStorage,
                                     IRemotingEndPoint endPoint)
        {
            _serializer    = serializer;
            _textReader    = textReader;
            _reader        = reader;
            _methodStorage = methodStorage;
            _endPoint      = endPoint;

            ulong?id             = null;
            var   attributeCount = _reader.AttributeCount;

            for (int i = 0; i < attributeCount; ++i)
            {
                _reader.MoveToNextAttribute();
                switch (_reader.Name)
                {
                case XmlSerializer.RpcIdAttributeName:
                    id = ulong.Parse(_reader.Value, NumberStyles.Integer, CultureInfo.InvariantCulture);
                    break;
                }
            }

            // TODO: Throw appropriate exception with meaningful error message
            _id = id.Value;
            if (!_reader.Read())
            {
                _isEmpty = true;
            }
        }
コード例 #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="moduleBuilder"></param>
 /// <param name="typeResolver"></param>
 public BinarySerializer2(ModuleBuilder moduleBuilder, ITypeResolver typeResolver = null)
 {
     _methodCompiler = new BinarySerializationCompiler(moduleBuilder);
     _methodStorage  = new SerializationMethodStorage <BinaryMethodsCompiler>("BinarySerializer",
                                                                              _methodCompiler);
     _typeResolver = typeResolver;
 }
コード例 #3
0
        public XmlMethodCallReader(XmlSerializer serializer,
                                   StreamReader streamReader,
                                   XmlReader reader,
                                   SerializationMethodStorage <XmlMethodsCompiler> methodStorage,
                                   IRemotingEndPoint endPoint)
        {
            _serializer    = serializer;
            _endPoint      = endPoint;
            _methodStorage = methodStorage;
            _textReader    = streamReader;
            _reader        = reader;

            ulong?id      = null;
            ulong?grainId = null;
            var   count   = _reader.AttributeCount;

            for (var i = 0; i < count; ++i)
            {
                _reader.MoveToNextAttribute();
                switch (_reader.Name)
                {
                case XmlSerializer.RpcIdAttributeName:
                    id = ulong.Parse(_reader.Value, NumberStyles.Integer, CultureInfo.InvariantCulture);
                    break;

                case XmlSerializer.GrainIdAttributeName:
                    grainId = ulong.Parse(_reader.Value, NumberStyles.Integer, CultureInfo.InvariantCulture);
                    break;

                case XmlSerializer.MethodAttributeName:
                    _methodName = _reader.Value;
                    break;

                default:
                    throw new NotImplementedException();
                }
            }

            // TODO: Throw exception with meaningful error message
            _id      = id.Value;
            _grainId = grainId.Value;
        }
コード例 #4
0
        /// <summary>
        /// </summary>
        /// <param name="moduleBuilder"></param>
        /// <param name="typeResolver"></param>
        /// <param name="writerSettings">The settings used to create xml documents</param>
        public XmlSerializer(ModuleBuilder moduleBuilder, ITypeResolver typeResolver = null, XmlWriterSettings writerSettings = null)
        {
            if (moduleBuilder == null)
            {
                throw new ArgumentNullException(nameof(moduleBuilder));
            }

            _typeResolver   = typeResolver;
            _methodCompiler = new XmlSerializationCompiler(moduleBuilder);
            _methodStorage  = new SerializationMethodStorage <XmlMethodsCompiler>("XmlSerializer", _methodCompiler);
            _writerSettings = writerSettings ?? new XmlWriterSettings
            {
                Indent          = true,
                NewLineHandling = NewLineHandling.Replace,
                NewLineChars    = "\n"
            };
            _readerSettings = new XmlReaderSettings
            {
                IgnoreWhitespace = true
            };
        }