Ejemplo n.º 1
0
        /// <inheritdoc />
        public Boolean TryGetStreamFor(String resource, SerializationAction serializationAction, out Stream stream)
        {
            var retVal        = SerializationAction.SERIALIZING == serializationAction ? true : File.Exists(resource);
            var isSerializing = SerializationAction.SERIALIZING == serializationAction;

            stream = retVal ? new FileStream(
                resource,
                isSerializing ? FileMode.Create : FileMode.Open,
                isSerializing ? FileAccess.Write : FileAccess.Read,
                isSerializing ? FileShare.None : FileShare.Read) : null;
            return(retVal);
        }
    public object ProcessByKind(string kindToUse, SerializationAction action, object objectToProcess)
    {
        if (kindToUse == "FirstKind")
        {
            if (action == SerializationAction.ToBytes)
            {
                return(new byte[1]);
            }

            return(new SomeClass());            // These would need to be your hard implementations. Not clean.
        }
        else
        {
            throw new NotImplementedException();
        }
    }
 private static void InvokeSerializers(ProvisioningTemplate template, object persistenceTemplate,
                                       IOrderedEnumerable <IGrouping <string, Type> > serializers, SerializationAction action)
 {
     foreach (var group in serializers)
     {
         // Get the first serializer only for each group (i.e. the most recent one for the current schema)
         var serializerType = group.FirstOrDefault();
         if (serializerType != null)
         {
             // Create an instance of the serializer
             var serializer = Activator.CreateInstance(serializerType) as IPnPSchemaSerializer;
             if (serializer != null)
             {
                 // And run the Deserialize/Serialize method
                 if (action == SerializationAction.Serialize)
                 {
                     serializer.Serialize(template, persistenceTemplate);
                 }
                 else
                 {
                     serializer.Deserialize(persistenceTemplate, template);
                 }
             }
         }
     }
 }
 public SerializationOperation(SerializationAction serializationAction)
     : base(serializationAction)
 {
 }