Esempio n. 1
0
            public TypeSchema Initialize(KnownSerializers serializers, TypeSchema targetSchema)
            {
                this.handler = serializers.GetHandler <SharedContainer <T> >();
                var type        = this.GetType();
                var name        = TypeSchema.GetContractName(type, serializers.RuntimeVersion);
                var innerMember = new TypeMemberSchema("inner", typeof(SharedContainer <T>).AssemblyQualifiedName, true);
                var schema      = new TypeSchema(name, TypeSchema.GetId(name), type.AssemblyQualifiedName, TypeFlags.IsClass, new TypeMemberSchema[] { innerMember }, Version);

                return(targetSchema ?? schema);
            }
Esempio n. 2
0
            public TypeSchema Initialize(KnownSerializers serializers, TypeSchema targetSchema)
            {
                serializers.GetHandler <byte>(); // register element type
                var type           = typeof(byte[]);
                var name           = TypeSchema.GetContractName(type, serializers.RuntimeVersion);
                var elementsMember = new TypeMemberSchema("Elements", typeof(byte).AssemblyQualifiedName, true);
                var schema         = new TypeSchema(name, TypeSchema.GetId(name), type.AssemblyQualifiedName, TypeFlags.IsCollection, new TypeMemberSchema[] { elementsMember }, Version);

                return(targetSchema ?? schema);
            }
Esempio n. 3
0
            /// <summary>
            /// Initialize custom serializer.
            /// </summary>
            /// <param name="serializers">Known serializers</param>
            /// <param name="targetSchema">Target type schema</param>
            /// <returns>Type schema</returns>
            public TypeSchema Initialize(KnownSerializers serializers, TypeSchema targetSchema)
            {
                if (targetSchema == null)
                {
                    TypeMemberSchema[] schemaMembers = new TypeMemberSchema[6]
                    {
                        new TypeMemberSchema("compression", typeof(CompressionMethod).AssemblyQualifiedName, false),
                        new TypeMemberSchema("image", typeof(UnmanagedBuffer).AssemblyQualifiedName, true),
                        new TypeMemberSchema("width", typeof(int).AssemblyQualifiedName, true),
                        new TypeMemberSchema("height", typeof(int).AssemblyQualifiedName, true),
                        new TypeMemberSchema("stride", typeof(int).AssemblyQualifiedName, true),
                        new TypeMemberSchema("pixelFormat", typeof(Imaging.PixelFormat).AssemblyQualifiedName, true),
                    };
                    var type = typeof(Imaging.Image);
                    var name = TypeSchema.GetContractName(type, serializers.RuntimeVersion);
                    this.schema = new TypeSchema(name, TypeSchema.GetId(name), type.AssemblyQualifiedName, TypeFlags.IsCollection, schemaMembers, Version);
                }
                else
                {
                    this.schema = targetSchema;
                }

                // Check to see if we can retrieve the custom compression serializer
                try
                {
                    var assembly = System.Reflection.Assembly.Load(new System.Reflection.AssemblyName("Microsoft.Psi.Imaging.Windows"));
                    if (assembly != null)
                    {
                        var ic = assembly.CreateInstance("Microsoft.Psi.Imaging.ImageCompressor");
                        if (ic != null)
                        {
                            this.imageCompressor = ic as IImageCompressor;
                            this.imageCompressor.Initialize(compressionMethod);
                        }
                    }
                }
                catch (System.IO.FileNotFoundException)
                {
                    this.imageCompressor = null;
                }

                return(this.schema);
            }
Esempio n. 4
0
            /// <summary>
            /// Initialize custom serializer.
            /// </summary>
            /// <param name="serializers">Known serializers.</param>
            /// <param name="targetSchema">Target type schema.</param>
            /// <returns>Type schema.</returns>
            public TypeSchema Initialize(KnownSerializers serializers, TypeSchema targetSchema)
            {
                if (targetSchema == null)
                {
                    TypeMemberSchema[] schemaMembers = new TypeMemberSchema[6]
                    {
                        new TypeMemberSchema("compression", typeof(CompressionMethod).AssemblyQualifiedName, false),
                        new TypeMemberSchema("image", typeof(UnmanagedBuffer).AssemblyQualifiedName, true),
                        new TypeMemberSchema("width", typeof(int).AssemblyQualifiedName, true),
                        new TypeMemberSchema("height", typeof(int).AssemblyQualifiedName, true),
                        new TypeMemberSchema("stride", typeof(int).AssemblyQualifiedName, true),
                        new TypeMemberSchema("pixelFormat", typeof(Imaging.PixelFormat).AssemblyQualifiedName, true),
                    };
                    var type = typeof(Imaging.Image);
                    var name = TypeSchema.GetContractName(type, serializers.RuntimeVersion);
                    this.schema = new TypeSchema(name, TypeSchema.GetId(name), type.AssemblyQualifiedName, TypeFlags.IsCollection, schemaMembers, Version);
                }
                else
                {
                    this.schema = targetSchema;
                }

                return(this.schema);
            }