Exemplo n.º 1
0
        Boolean IMemberAccessor.Read(IFormatterX fm, AccessorContext context)
        {
            var member = context.Member;

            if (member.Name == "_Type")
            {
                Type = fm.Read <DNSQueryType>();

                // 如果是响应,创建具体消息
                //var de = fm.Hosts.Peek() as DNSEntity;
                var de = fm.Hosts.FirstOrDefault(e => e is DNSEntity) as DNSEntity;
                if (de != null && de.Header.Response)
                {
                    var dr = DNSEntity.CreateRecord(Type);
                    if (dr == null)
                    {
                        return(false);
                    }

                    dr.Name = Name;
                    dr.Type = Type;

                    // 设置给上级,让它用新的对象继续读取后面的成员
                    fm.Hosts.Pop();
                    fm.Hosts.Push(dr);
                }

                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
            public override Boolean Write(IFormatterX formatter, AccessorContext context)
            {
                Assert.Equal("Name", context.Member.Name);

                var v = context.Value as MyModelWithMemberAccessorAtt;

                var bn = formatter as Binary;

                bn.Write(v.Name);

                return(true);
            }
Exemplo n.º 3
0
            public Boolean Write(IFormatterX formatter, AccessorContext context)
            {
                var bn = formatter as Binary;

                switch (context.Member.Name)
                {
                case "Code": bn.Write(Code); break;

                case "Name": bn.Write(Name); break;
                }

                return(true);
            }
Exemplo n.º 4
0
            public Boolean Read(IFormatterX formatter, AccessorContext context)
            {
                var bn = formatter as Binary;

                switch (context.Member.Name)
                {
                case "Code": Code = bn.Read <Int32>(); break;

                case "Name": Name = bn.Read <String>(); break;
                }
                //Code = bn.Read<Int32>();
                //Name = bn.Read<String>();

                return(true);
            }
Exemplo n.º 5
0
        private SessionCsvWriter initCsvWriter()
        {
            var data     = initDatasource();
            var accessor = new AccessorContext {
                Context    = Context.Empty.Clone(_session),
                MemberType = data.GetRowType()
            };

            var tsvw = new SessionCsvWriter {
                HeaderMode = CsvWriterHeaderMode.Path,
                DataSource = data,
                Accessors  = new List <Accessor> {
                    accessor.GetAccessor("Kod"),
                    accessor.GetAccessor("Ceny.Podstawowa.Netto")
                }
            };

            foreach (var acc in tsvw.Accessors)
            {
                acc.Prepare();
            }

            return(tsvw);
        }
Exemplo n.º 6
0
        Boolean IMemberAccessor.Write(IFormatterX fm, AccessorContext context)
        {
            var member = context.Member;

            return(false);
        }