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); }
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); }
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); }
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); }
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); }
Boolean IMemberAccessor.Write(IFormatterX fm, AccessorContext context) { var member = context.Member; return(false); }