public static object CreateObject(this object receiver, string method, string modelName, WriteSettings settings, QName root) { TkDebug.AssertArgumentNullOrEmpty(method, "method", null); TkDebug.AssertArgumentNull(settings, "settings", null); if (receiver == null) { return(null); } IObjectSerializer serializer = CreateSerializer(method); object writer = serializer.CreateWriter(null, settings); using (writer as IDisposable) { SerializerUtil.WriteSerializer(serializer, writer, receiver, modelName, settings, root, null); return(writer); } }
//public static string WriteToString(this object receiver, string method, // WriteSettings settings, QName root) //{ // return WriteToString(receiver, method, null, settings, root); //} public static string WriteToString(this object receiver, string method, string modelName, WriteSettings settings, QName root) { TkDebug.AssertArgumentNullOrEmpty(method, "method", null); TkDebug.AssertArgumentNull(settings, "settings", null); if (receiver == null) { return(null); } IObjectSerializer serializer = CreateSerializer(method); MemoryStream stream = new MemoryStream(); object writer = serializer.CreateWriter(stream, settings); using (writer as IDisposable) { SerializerUtil.WriteSerializer(serializer, writer, receiver, modelName, settings, root, null); byte[] data = stream.ToArray(); return(settings.Encoding.GetString(data, 0, data.Length)); } }