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 }
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 }