public WcfResponse Fetch(CriteriaRequest request) { Csla.Server.DataPortal portal = new Csla.Server.DataPortal(); Exception error = null; DataPortalResult result = null; WcfResponse response = null; ISerializationFormatter formatter = SerializationFormatterFactory.GetFormatter(); try { request = ConvertRequest(request); DataPortalContext context = new DataPortalContext( formatter.Deserialize(request.Principal) as IPrincipal, true, request.ClientCulture, request.ClientUICulture, formatter.Deserialize(request.ClientContext) as ContextDictionary, formatter.Deserialize(request.GlobalContext) as ContextDictionary); result = portal.Fetch(Type.GetType(request.TypeName), formatter.Deserialize(request.CriteriaData), context); response = new WcfResponse( formatter.Serialize(result.ReturnObject), formatter.Serialize(error), formatter.Serialize(Csla.ApplicationContext.GlobalContext)); } catch (Exception ex) { error = ex; response = new WcfResponse( null, formatter.Serialize(error), formatter.Serialize(Csla.ApplicationContext.GlobalContext)); } return(ConvertResponse(response)); }
private UpdateRequest GetRequest(ISerializationFormatter formatter, object obj, DataPortalContext context) { UpdateRequest request = new UpdateRequest(); request.ClientContext = formatter.Serialize(Csla.ApplicationContext.ClientContext); request.ClientCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; request.ClientUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; request.GlobalContext = formatter.Serialize(Csla.ApplicationContext.GlobalContext); request.Principal = formatter.Serialize(Csla.ApplicationContext.User); request.ObjectData = formatter.Serialize(obj); request = ConvertRequest(request); return(request); }
private CriteriaRequest GetRequest(ISerializationFormatter formatter, Type objectType, object criteria, DataPortalContext context) { CriteriaRequest request = new CriteriaRequest(); request.ClientContext = formatter.Serialize(Csla.ApplicationContext.ClientContext); request.ClientCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; request.ClientUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; request.CriteriaData = formatter.Serialize(criteria); request.GlobalContext = formatter.Serialize(Csla.ApplicationContext.GlobalContext); request.Principal = formatter.Serialize(Csla.ApplicationContext.User); request.TypeName = objectType.AssemblyQualifiedName; request = ConvertRequest(request); return(request); }
public void Serialize(object item, ISerializationContext context, Type expectedType) { try { _logger.LogInformation("Serialising: {name}", expectedType?.Name ?? "{null expetced type}"); if (context == null) { throw new ArgumentNullException(nameof(context)); } if (item == null) { _logger.LogDebug("Serialising null with a 0 int"); context.StreamWriter.Write(0); return; } using (var memoryStream = new MemoryStream()) { _logger.LogDebug("Serialising item with size {size}", memoryStream.Length); _cslaSerializarionFormatter.Serialize(memoryStream, item); context.StreamWriter.Write(memoryStream.Length); // memoryStream.Seek(0, SeekOrigin.Begin); context.StreamWriter.Write(memoryStream.ToArray()); } } catch (Exception e) { _logger.LogError(e, "Could not Serialize."); throw; } }
protected internal void CopyState(int parentEditLevel) { CopyingState(); Type currentType = this.GetType(); HybridDictionary state = new HybridDictionary(); if (this.EditLevel + 1 > parentEditLevel) { throw new UndoException(string.Format(Resources.EditLevelMismatchException, "CopyState")); } do { // get the list of fields in this type List <DynamicMemberHandle> handlers = UndoableHandler.GetCachedFieldHandlers(currentType); foreach (var h in handlers) { var value = h.DynamicMemberGet(this); if (typeof(YYT.Core.IUndoableObject).IsAssignableFrom(h.MemberType)) { // make sure the variable has a value if (value == null) { // variable has no value - store that fact //state.Add(h.MemberFullName, null); state.Add(h.MemberName, null); } else { // this is a child object, cascade the call ((Core.IUndoableObject)value).CopyState(this.EditLevel + 1, BindingEdit); } } else { // this is a normal field, simply trap the value //state.Add(h.MemberFullName, value); state.Add(h.MemberName, value); } } currentType = currentType.BaseType; } while (currentType != typeof(UndoableBase)); // serialize the state and stack it using (MemoryStream buffer = new MemoryStream()) { ISerializationFormatter formatter = SerializationFormatterFactory.GetFormatter(); formatter.Serialize(buffer, state); _stateStack.Push(buffer.ToArray()); } CopyStateComplete(); }
/// <summary> /// Clones an object. /// </summary> /// <param name="obj">The object to clone.</param> /// <remarks> /// <para>The object to be cloned must be serializable.</para> /// <para>The serialization is performed using the formatter /// specified in ApplicationContext.</para> /// <para>The default is to use the MobileFormatter.</para> /// </remarks> public object Clone(object obj) { using var buffer = new MemoryStream(); ISerializationFormatter formatter = SerializationFormatterFactory.GetFormatter(ApplicationContext); formatter.Serialize(buffer, obj); buffer.Position = 0; return(formatter.Deserialize(buffer)); }
/// <summary> /// Clones an object. /// </summary> /// <param name="obj">The object to clone.</param> /// <remarks> /// <para>The object to be cloned must be serializable.</para> /// <para>The serialization is performed using the formatter /// specified in the application's configuration file /// using the CslaSerializationFormatter key.</para> /// <para>The default is to use the /// <see cref="System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" /> /// </para>. You may also choose to use the Microsoft .NET 3.0 /// <see cref="System.Runtime.Serialization.NetDataContractSerializer"> /// NetDataContractSerializer</see> provided as part of WCF. /// </remarks> public static object Clone(object obj) { using (MemoryStream buffer = new MemoryStream()) { ISerializationFormatter formatter = SerializationFormatterFactory.GetFormatter(); formatter.Serialize(buffer, obj); buffer.Position = 0; object temp = formatter.Deserialize(buffer); return(temp); } }
public static byte[] Serialize(this ISerializationFormatter formatter, object objectData) { if (objectData != null) { using (MemoryStream stream = new MemoryStream()) { formatter.Serialize(stream, objectData); return(stream.GetBuffer()); } } else { return(null); } }
private UpdateRequest GetRequest(ISerializationFormatter formatter, object obj, DataPortalContext context) { UpdateRequest request = new UpdateRequest(); request.ClientContext = formatter.Serialize(Csla.ApplicationContext.ClientContext); request.ClientCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; request.ClientUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; request.GlobalContext = formatter.Serialize(Csla.ApplicationContext.GlobalContext); request.Principal = formatter.Serialize(Csla.ApplicationContext.User); request.ObjectData = formatter.Serialize(obj); request = ConvertRequest(request); return request; }
private CriteriaRequest GetRequest(ISerializationFormatter formatter, Type objectType, object criteria, DataPortalContext context) { CriteriaRequest request = new CriteriaRequest(); request.ClientContext = formatter.Serialize(Csla.ApplicationContext.ClientContext); request.ClientCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; request.ClientUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; request.CriteriaData = formatter.Serialize(criteria); request.GlobalContext = formatter.Serialize(Csla.ApplicationContext.GlobalContext); request.Principal = formatter.Serialize(Csla.ApplicationContext.User); request.TypeName = objectType.AssemblyQualifiedName; request = ConvertRequest(request); return request; }