示例#1
0
    static MessageWriter()
      {
      logSer = Log.isLogging( LoggingConstants.SERIALIZATION );
      // numbers and primitive types
      NumberWriter numWriter = new NumberWriter();
      IntegerWriter intWriter = new IntegerWriter();

      writers.Add( typeof( byte ), intWriter );
      writers.Add( typeof( int ), intWriter );
      writers.Add( typeof( short ), intWriter );
      writers.Add( typeof( uint ), intWriter );
      writers.Add( typeof( ushort ), intWriter );

      writers.Add( typeof( float ), numWriter );
      writers.Add( typeof( double ), numWriter );
      writers.Add( typeof( long ), numWriter );
      writers.Add( typeof( ulong ), numWriter );
      writers.Add( typeof( IConvertible ), numWriter );
      writers.Add( typeof( NumberObject ), new NumberObjectWriter() );

      writers.Add( typeof( Boolean ), new BooleanWriter() );

      StringWriter stringWriter = new StringWriter( false );
      writers.Add( typeof( string ), stringWriter );
      writers.Add( typeof( char[] ), stringWriter );
      writers.Add( typeof( Char ), stringWriter );
      writers.Add( typeof( StringBuilder ), stringWriter );

      writers.Add( typeof( DateTime ), new DateWriter( false ) );
      writers.Add( typeof( TimeSpan ), new TimeSpanWriter() );

      writers.Add( typeof( Request ), new AMFMessageWriter() );
      writers.Add( typeof( Header ), new AMFHeaderWriter() );
      writers.Add( typeof( Body ), new AMFBodyWriter() );

      // collections
      writers.Add( typeof( AnonymousObject ), new PropertyBagWriter() );
      writers.Add( typeof( IDictionary ), new BoundPropertyBagWriter() );
      writers.Add( typeof( TypedObject ), new TypedObjectWriter() );
      writers.Add( typeof( IEnumerator ), new EnumeratorWriter() );
      writers.Add( typeof( IWebORBArrayCollection ), new ArrayCollectionWriter() );
      writers.Add( typeof( IWebORBArray ), new ArrayWriter() );   
#if (FULL_BUILD)
      writers.Add( typeof( IWebORBVector<> ), new V3VectorWriter<object>() );
      writers.Add( typeof( StringDictionary ), new StringDictionaryWriter() );
      writers.Add( typeof( TypedDictionary ), new TypedDictionaryWriter() );
      writers.Add( typeof( TypedDataSet ), new TypedDataSetWriter() );
      writers.Add( typeof( TypedDataTable ), new TypedDataTableWriter() );

      // remote references
      writers.Add( typeof( RemoteReferenceObject ), new RemoteReferenceWriter() );

      // sql types
      writers.Add( typeof( DataSet ), new DataSetWriter() );
      writers.Add( typeof( DataTable ), new DataTableWriter() );

      GenericSqlTypeHandler sqlTypesHandler = new GenericSqlTypeHandler();
      writers.Add( typeof( SqlDateTime ), sqlTypesHandler );
      writers.Add( typeof( SqlBinary ), sqlTypesHandler );
      writers.Add( typeof( SqlBoolean ), sqlTypesHandler );
      writers.Add( typeof( SqlByte ), sqlTypesHandler );
      writers.Add( typeof( SqlDecimal ), sqlTypesHandler );
      writers.Add( typeof( SqlDouble ), sqlTypesHandler );
      writers.Add( typeof( SqlInt16 ), sqlTypesHandler );
      writers.Add( typeof( SqlInt32 ), sqlTypesHandler );
      writers.Add( typeof( SqlInt64 ), sqlTypesHandler );
      writers.Add( typeof( SqlMoney ), sqlTypesHandler );
      writers.Add( typeof( SqlSingle ), sqlTypesHandler );
      writers.Add( typeof( SqlString ), sqlTypesHandler );
#endif
      writers.Add( typeof( ServiceException ), new ServiceExceptionWriter() );
      // various .net types
      writers.Add( typeof( Guid ), new GuidWriter() );

      // DOM document

      writers.Add( typeof( Type ), new RuntimeTypeWriter() );

#if (FULL_BUILD)
      XmlWriter xmlWriter = new XmlWriter();
      writers.Add( typeof( System.Xml.XmlDocument ), xmlWriter );
      writers.Add( typeof( System.Xml.XmlElement ), xmlWriter );
      writers.Add( typeof( System.Xml.XmlNode ), xmlWriter );

      DomainObjectWriter domainObjectWriter = new DomainObjectWriter();
      writers.Add( typeof( Weborb.Data.Management.DomainObject ), domainObjectWriter );
      try
        {
        Type hibernateProxyType = TypeLoader.LoadType( "NHibernate.Proxy.INHibernateProxy" );

        if ( hibernateProxyType != null )
          // new version of NHibernate was added
          //writers.Add( hibernateProxyType, new HibernateProxyWriter() );
          writers.Add( hibernateProxyType, new Hibernate2ProxyWriter() );

        }
      catch ( Exception )
        {
        }

#if NET_35 || NET_40
      try
      {
          Type entityObjectType = typeof( System.Data.Objects.DataClasses.EntityObject);

          if (entityObjectType != null)
              writers.Add(entityObjectType, new EntityObjectWriter());
      }
      catch (Exception e)
      {
          Log.log(LoggingConstants.EXCEPTION, e);
      }
#endif

#endif

      }
示例#2
0
        static MessageWriter()
        {
            logSer = Log.isLogging(LoggingConstants.SERIALIZATION);
            // numbers and primitive types
            NumberWriter  numWriter = new NumberWriter();
            IntegerWriter intWriter = new IntegerWriter();

            writers.Add(typeof(byte), intWriter);
            writers.Add(typeof(int), intWriter);
            writers.Add(typeof(short), intWriter);
            writers.Add(typeof(uint), intWriter);
            writers.Add(typeof(ushort), intWriter);

            writers.Add(typeof(float), numWriter);
            writers.Add(typeof(double), numWriter);
            writers.Add(typeof(long), numWriter);
            writers.Add(typeof(ulong), numWriter);
            writers.Add(typeof(IConvertible), numWriter);
            writers.Add(typeof(NumberObject), new NumberObjectWriter());

            writers.Add(typeof(Boolean), new BooleanWriter());

            StringWriter stringWriter = new StringWriter(false);

            writers.Add(typeof(string), stringWriter);
            writers.Add(typeof(char[]), stringWriter);
            writers.Add(typeof(Char), stringWriter);
            writers.Add(typeof(StringBuilder), stringWriter);

            writers.Add(typeof(DateTime), new DateWriter(false));
            writers.Add(typeof(TimeSpan), new TimeSpanWriter());

            writers.Add(typeof(Request), new AMFMessageWriter());
            writers.Add(typeof(Header), new AMFHeaderWriter());
            writers.Add(typeof(Body), new AMFBodyWriter());

            // collections
            writers.Add(typeof(AnonymousObject), new PropertyBagWriter());
            writers.Add(typeof(IDictionary), new BoundPropertyBagWriter());
            writers.Add(typeof(TypedObject), new TypedObjectWriter());
            writers.Add(typeof(IEnumerator), new EnumeratorWriter());
            writers.Add(typeof(IWebORBArrayCollection), new ArrayCollectionWriter());
            writers.Add(typeof(IWebORBArray), new ArrayWriter());
#if (FULL_BUILD)
            writers.Add(typeof(IWebORBVector <>), new V3VectorWriter <object>());
            writers.Add(typeof(StringDictionary), new StringDictionaryWriter());
            writers.Add(typeof(TypedDictionary), new TypedDictionaryWriter());
            writers.Add(typeof(TypedDataSet), new TypedDataSetWriter());
            writers.Add(typeof(TypedDataTable), new TypedDataTableWriter());

            // remote references
            writers.Add(typeof(RemoteReferenceObject), new RemoteReferenceWriter());

            // sql types
            writers.Add(typeof(DataSet), new DataSetWriter());
            writers.Add(typeof(DataTable), new DataTableWriter());

            GenericSqlTypeHandler sqlTypesHandler = new GenericSqlTypeHandler();
            writers.Add(typeof(SqlDateTime), sqlTypesHandler);
            writers.Add(typeof(SqlBinary), sqlTypesHandler);
            writers.Add(typeof(SqlBoolean), sqlTypesHandler);
            writers.Add(typeof(SqlByte), sqlTypesHandler);
            writers.Add(typeof(SqlDecimal), sqlTypesHandler);
            writers.Add(typeof(SqlDouble), sqlTypesHandler);
            writers.Add(typeof(SqlInt16), sqlTypesHandler);
            writers.Add(typeof(SqlInt32), sqlTypesHandler);
            writers.Add(typeof(SqlInt64), sqlTypesHandler);
            writers.Add(typeof(SqlMoney), sqlTypesHandler);
            writers.Add(typeof(SqlSingle), sqlTypesHandler);
            writers.Add(typeof(SqlString), sqlTypesHandler);
#endif
            writers.Add(typeof(ServiceException), new ServiceExceptionWriter());
            // various .net types
            writers.Add(typeof(Guid), new GuidWriter());

            // DOM document

            writers.Add(typeof(Type), new RuntimeTypeWriter());

#if (FULL_BUILD)
            XmlWriter xmlWriter = new XmlWriter();
            writers.Add(typeof(System.Xml.XmlDocument), xmlWriter);
            writers.Add(typeof(System.Xml.XmlElement), xmlWriter);
            writers.Add(typeof(System.Xml.XmlNode), xmlWriter);

            DomainObjectWriter domainObjectWriter = new DomainObjectWriter();
            writers.Add(typeof(Weborb.Data.Management.DomainObject), domainObjectWriter);
            try
            {
                Type hibernateProxyType = TypeLoader.LoadType("NHibernate.Proxy.INHibernateProxy");

                if (hibernateProxyType != null)
                {
                    // new version of NHibernate was added
                    //writers.Add( hibernateProxyType, new HibernateProxyWriter() );
                    writers.Add(hibernateProxyType, new Hibernate2ProxyWriter());
                }
            }
            catch (Exception)
            {
            }

#if NET_35 || NET_40
            try
            {
                Type entityObjectType = typeof(System.Data.Objects.DataClasses.EntityObject);

                if (entityObjectType != null)
                {
                    writers.Add(entityObjectType, new EntityObjectWriter());
                }
            }
            catch (Exception e)
            {
                Log.log(LoggingConstants.EXCEPTION, e);
            }
#endif
#endif
        }