private object[] Serialize(object entity) { var(schema, logicalCount, serializer) = injector.SetMatcher(entity); var values = new object[logicalCount]; IWriterWithMetadata metadataWriter = writer; var recordContext = metadataWriter.GetMetadata(); serializer(recordContext, entity, values); return(values); }
public void TestTypeExtensionWithAttribute() { ExtensionNodeList nodes = AddinManager.GetExtensionNodes(typeof(IWriterWithMetadata)); Assert.AreEqual(2, nodes.Count, "Node count"); TypeExtensionNode <WriterWithMetadataAttribute> n1 = nodes [0] as TypeExtensionNode <WriterWithMetadataAttribute>; TypeExtensionNode <WriterWithMetadataAttribute> n2 = nodes [1] as TypeExtensionNode <WriterWithMetadataAttribute>; Assert.IsNotNull(n1); Assert.IsNotNull(n2); Assert.AreEqual("meta1", n1.Data.Name, "t1"); Assert.AreEqual(1, n1.Data.Version, "t2"); IWriterWithMetadata md = (IWriterWithMetadata)n1.CreateInstance(); Assert.AreEqual("mt1", md.Write()); Assert.AreEqual("meta2", n2.Data.Name, "t3"); Assert.AreEqual(2, n2.Data.Version, "t4"); md = (IWriterWithMetadata)n2.CreateInstance(); Assert.AreEqual("mt2", md.Write()); }
public TypedWriter(IWriterWithMetadata writer, IMapper <TEntity> mapper) { this.writer = writer; serializer = mapper.GetWriter(); logicalCount = mapper.LogicalCount; }
public MultiplexingTypedWriter(IWriterWithMetadata writer, ITypeMapperInjector injector) { this.writer = writer; this.injector = injector; }