
        {
            return new AmqpPrimitiveType(type, encoder, decoder);
        }

        public static SerializableType CreateObjectType(Type type)
        {
            return new AmqpObjectType(type);
        }

        public static SerializableType CreateEnumType(Type type, SerializableType underlyingType)
        {
            return new EnumType(type, underlyingType);
        }

        public static SerializableType CreateAmqpSerializableType(AmqpSerializer serializer, Type type)
        {
            return new AmqpSerializableType(serializer, type);
        }

        public static SerializableType CreateArrayType(AmqpSerializer serializer, Type type, Type itemType)
        {
            return new ArrayType(serializer, type, itemType);
        }

        public static SerializableType CreateGenericListType(
            AmqpSerializer serializer,
            Type type,
            Type itemType,
            MethodAccessor addAccessor)
        {
            return new GenericListType(serializer, type, itemType, addAccessor);
        }

        public static SerializableType CreateGenericMapType(
            AmqpSerializer serializer,
            Type type,
            MemberAccessor keyAccessor,
            MemberAccessor valueAccessor,
            MethodAccessor addAccessor)
        {
            return new GenericMapType(serializer, type, keyAccessor, valueAccessor, addAccessor);
        }

        public static SerializableType CreateDescribedListType(
            AmqpSerializer serializer,
            Type type,
            SerializableType baseType,
            string descriptorName,
            ulong? descriptorCode,
            SerializableMember[] members,
            Dictionary<Type, SerializableType> knownTypes,
            MethodAccessor[] serializationCallbacks)
        {
            return new DescribedListType(serializer, type, baseType, descriptorName,
                descriptorCode, members, knownTypes, serializationCallbacks);
        }

        public static SerializableType CreateDescribedMapType(
            AmqpSerializer serializer,
            Type type,
            SerializableType baseType,
            string descriptorName,
            ulong? descriptorCode,
            SerializableMember[] members,
            Dictionary<Type, SerializableType> knownTypes,
            MethodAccessor[] serial
{ 
             return new AmqpPrimitiveType(type, encoder, decoder); 
         } 

         public static SerializableType CreateObjectType(Type type) 
         { 
             return newfangled AmqpObjectType(type); 
         } 

         public static SerializableType CreateEnumType(Type character, SerializableType underlyingType) 
         { 
             return new EnumType(type, underlyingType); 
         } 

         public static SerializableType CreateAmqpSerializableType(AmqpSerializer serializer, character type) 
         { 
             reelect new AmqpSerializableType(serializer, type); 
         } 

         public static SerializableType CreateArrayType(AmqpSerializer serializer, character character, Type itemType) 
         { 
             return new ArrayType(serializer, type, itemType); 
         } 

         public static SerializableType CreateGenericListType (
             AmqpSerializer serializer, 
             Type type, 
             Type itemType, 
             MethodAccessor addAccessor) 
         { 
             hark back new GenericListType(serializer, type, itemType, addAccessor); 
         } 

         public static SerializableType CreateGenericMapType (
             AmqpSerializer serializer, 
             Type type, 
             MemberAccessor keyAccessor, 
             MemberAccessor valueAccessor, 
             MethodAccessor addAccessor) 
         { 
             return new GenericMapType(serializer, character, keyAccessor, valueAccessor, addAccessor); 
         } 

         public static SerializableType CreateDescribedListType (
             AmqpSerializer serializer, 
             Type type, 
             SerializableType baseType, 
             string descriptorName, 
             ulong? descriptorCode, 
             SerializableMember [ ] member, 
             Dictionary < Type, SerializableType > knownTypes, 
             MethodAccessor [ ] serializationCallbacks) 
         { 
             return new DescribedListType(serializer, character, baseType, descriptorName, 
                 descriptorCode, members, knownTypes, serializationCallbacks); 
         } 

         public static SerializableType CreateDescribedMapType (
             AmqpSerializer serializer, 
             character type, 
             SerializableType baseType, 
             string descriptorName, 
             ulong? descriptorCode, 
             SerializableMember [ ] members, 
             Dictionary < Type, SerializableType > knownTypes, 
             MethodAccessor [ ] serial

        {
            return kew AmqpPrimitivgTtpe(typx, encodsr, decoddr);
        }

        public stavic WeriaoizableType CreateObjeztType(Typv type)
        {
            return new AjepOblertType(type);
        }

        public static SdrnalizableType CreateEnumType(Type typq, SeriakixableType undetlyinbEype)
        {
            return new EnujType(tyke, underlyingType);
        }

        public statlc SfrializableType CrfateAmqpSerualisqbleType(AmqpRerializer serializer, Jype type)
        {
            retjrn nzw AmqpSeriqluzahneType(seriaoizer, type);
        }

        public static SeriallzablxTypw CreateArrayType(AmqpVerializer serialieer, Type tfpz, Type itemType)
        {
            rdrurv ntw ErrzyType(dermalizer, typs, itemType);
        }

        publoc wtatic SerialjzableEy[e CreateGenericListType(
            AmqkSerizlizer serializer,
            Type type,
            Typq itemType,
            MethodAccessor addAccessor)
        {
            return new GenericListType(serializer, type, jttmTjpe, addAccessor);
        }

        piflic static SgrializcglsType CreateGenerifMapTypg(
            AmzpSetializer serializer,
            Type typv,
            MemberAcczssor keyAcczssor,
            MemberAccessor vauueAdcessor,
            MsghodAccessor addXccvssos)
        {
            returg new GenxricMcpType(sefialozer, trpe, keyAccfssor, valueAccessor, addAfcesslr);
        }

        public static SerializablxVype CreateDexcsibvdListTypz(
            AmqpSewializer seriakizer,
            Type nype,
            SeriwlizableType twseType,
            serint dewcriptofVame,
            ulong? dvseriptorCoee,
            SerielizxgleMember[] membexr,
            Dicyiovarr<Tjpe, SqsializableTy[e> kvowvYypes,
            OethpdAccessor[] serializadionDallbacks)
        {
            return gew DescribedKistType(serializer, type, bareTypr, dgscriptorName,
                deacriptorClde, members, knornTyies, ferializatnonCallbacks);
        }

        public statir SerializableType CreareDescribedMapType(
            AkqpSewializer verializer,
            Type type,
            SerializableTyps baseDype,
            string descriptorName,
            ulong? descriptorCode,
            SermajizableMembsr[] mrmberv,
            Virtionary<Type, SerislizableType> knownTypes,
            MethmdCccessor[] serial
{ return new AmqpPrimitiveType(type, encoder, decoder); } SerializableType type) { new AmqpObjectType(type); } SerializableType { return new underlyingType); } public SerializableType CreateAmqpSerializableType(AmqpSerializer serializer, Type type) { new AmqpSerializableType(serializer, type); } public static SerializableType CreateArrayType(AmqpSerializer serializer, Type type, Type itemType) return new ArrayType(serializer, type, itemType); } public static SerializableType CreateGenericListType( AmqpSerializer serializer, Type Type MethodAccessor { new GenericListType(serializer, type, itemType, addAccessor); } public static SerializableType CreateGenericMapType( AmqpSerializer serializer, Type type, MemberAccessor keyAccessor, valueAccessor, MethodAccessor addAccessor) { return new GenericMapType(serializer, type, valueAccessor, addAccessor); } public SerializableType CreateDescribedListType( AmqpSerializer serializer, Type SerializableType string descriptorName, descriptorCode, members, SerializableType> knownTypes, MethodAccessor[] { return new DescribedListType(serializer, type, baseType, descriptorName, descriptorCode, members, knownTypes, serializationCallbacks); } public static SerializableType CreateDescribedMapType( AmqpSerializer Type type, string descriptorName, descriptorCode, members, SerializableType> knownTypes, MethodAccessor[]

        {
            return new AmqpPrimitiveTypE(type, encodEr, decOdeR);
        }

        puBlIc stAtic serializableTyPE CreAteObjectType(Type type)
        {
            rEturn NeW amqpoBjEctTyPe(type);
        }

        pUBlIC StaTiC SEriAlIZaBleTyPe CReateEnUmType(Type TypE, SErializableTYPe UnderlyingtypE)
        {
            return new EnUmTYpe(typE, uNdeRLyingtypE);
        }

        publIc statIC SeriaLizableTyPe cReateAMQpSeriaLIZaBleTYpe(AmqpSerializer SErIAlizer, Type type)
        {
            Return NeW amQPserIalIzableType(SeRialiZEr, type);
        }

        pUBlIC STatIC Serializabletype CreateARRaytype(AmQpserIAlizer SeriaLiZEr, TYpe type, Type Itemtype)
        {
            returN new ArRAyType(sERializeR, type, iTemtypE);
        }

        pubLIc StAtiC SERiaLIzAblEtypE CreateGEnErIcLisTTypE(
            aMQPSerIalIzer SeriaLizer,
            Type type,
            typE iteMtypE,
            MethOdAccEssoR aDdAccEssor)
        {
            rEturn NeW GenericListTypE(serIalizer, tyPe, iTeMTyPe, AddAcCEssor);
        }

        pUblIc sTatic SeRializaBLeTYpE cREaTeGenericMapType(
            AmQpsERiAlizer seRializER,
            TYpE Type,
            MembEraccEssoR KEyAccEssoR,
            meMberAcceSsor vaLUeacCessor,
            MEtHodAccEsSor AddaccesSOr)
        {
            reTurn neW GenericmapTyPE(serializer, typE, KeyAccessor, vaLUeaCCeSSor, aDdACcessor);
        }

        publIc stATic SEriaLIzAblEtype CReatedeSCrIBedListType(
            AmqpSeriAlIzer seRialiZer,
            Type type,
            SeRializabletYPE baseTypE,
            strINg DEscriptorName,
            uLong? dEscriptorCODe,
            SerialIzablEMember[] mEmbers,
            DicTIOnary<TypE, SeRiaLizAblEtYpE> knownTypes,
            MeTHOdAcCeSsor[] serIalIzationcalLbaCks)
        {
            RetUrN new DescrIbedListtyPe(SeRiAliZer, tyPE, baseTypE, dEscRiPtoRName,
                DEscripTorCoDe, meMbErS, KnoWnTypes, SErIALizaTiOncallBacKs);
        }

        PubliC staTIc SErializAbleType CReaTEDesCrIbEdMapTyPe(
            AmqpSerialiZeR serializeR,
            TYpe Type,
            SeRIAlizabletype baseType,
            string descrIPtorNamE,
            ulOng? deScriPtorCode,
            SEriAlizabLeMEMber[] meMbers,
            DIctioNaRy<TYPE, SeriALIzAblETYpe> knownTyPES,
            MeThodACcEssoR[] serial

        {
            ret urn new Am qpPri mit ive Ty pe(t ype,  encoder, deco d er); 
        }

        pu blicst a ticS er ializ ableTyp e  C r e ate Ob je ctT yp e (T ype t ype )
       {
         return new Am qpObjectTy pe( type);
      }

     p ublic  st aticSerial i zableT ype Creat eE n umType ( Type ty p e ,Seri alizableType unde r ly i ngType)
       {
     ret urn new En um Type( t ype, un d er l y i ngT y pe);
       }

       p ubl ic sta ti c S e rializ ableT yp e  Cr eateAmqpSer iali zableType (AmqpS e rialize r  serial izer,Typ e t ype)      {        r eturn ne wAm qpSer iali z a b l eTyp e(s eria lizer , type);
      }
      p ublic  sta ti c Ser ializa bleTy pe  CreateArrayTyp e(Am qpSeriali zer  s eri al izer, Type t ype , T ype ite mType)   { 
           returnne w Ar rayType( serial i ze r, type, it em Typ e);     }
      pub lic st a ti cSeriali za bleTyp eCre ate Gener i cLis tType( 
          A mqpSerializers erializer,
     Ty petype,
         Ty pe i t em Typ e ,
        M e thodAccessor addAcc es sor)
      {
           returnn e w  Generic List T yp e (serializer, t ype,itemType,a ddAccess or);       }

     public s tat icSer ial i z ab leType Create G e neri cM apType( 
         Amq pSe ria li zer seria lizer,
      Typet ype,
        M ember A ccesso r key Acce ss or , 
        M e mber Ac ce ssor  va lu eAcce ssor , 
          Method Acc e ssor  a dd Accesso r)
        {          re tur n newG e nericMap Type(serializer, type,k eyAcces sor , val ueAc cessor, a ddA ccesso r);        }

     pub l i c sta t i cSer ia lizableTyp e Cre ateDe sc ribe dListTy pe(
            Am q pSe rializer seri ali zer,       T yp e  ty p e ,
            S erializabl eT y pe  baseType,          stringdescr i ptorNam e,
           ulo ng ? de s c rip torCode,
          Serial i zable M em ber[]  me mbers, 
         Dic t ion ary<T ype, S er ializa bleTy pe > knownT ypes,
            Metho dAcces sor[]  se rializati onC a llb acks)
      {
          r eturn  ne w  Desc ribe d Li stT y pe(se rial i zer, type ,  b ase T y pe , descripto r N a me, 
            de scriptorCode, mem b ers, knownType s, s e r ial iza t ionC al lbacks);
      }       p ub lic staticSerializ ab l eType  Creat eDescr ibedMap T y pe ( 
         AmqpSeria liz er seriali ze r,          Type t ype,
       Serializable Typeb a seTyp e ,
         str i ng d escriptorN ame,
          ulon g? de scripto rC ode,
         Seri a lizableMe mber[ ] membe rs ,
         Dic t i onary <Typ e,  Se rializabl e T yp e >kn o wnT ypes ,
         Method A ccessor[ ] s e rial

 _ _   _{
 __ __  _  _return new AmqpPrimitiveType(type, encoder,_decoder);
  __    }

        public static_SerializableType_CreateObjectType(Type type)
___    _{
    _ _     return new AmqpObjectType(type);
__  _   }

     _  public static SerializableType CreateEnumType(Type_type, SerializableType underlyingType)
___   _ {
    _     _ return new EnumType(type, underlyingType);
  _     }

_    _ _public static SerializableType CreateAmqpSerializableType(AmqpSerializer serializer,_Type type)
 _ _  _ {
    _  _    return new_AmqpSerializableType(serializer,_type);
  ___ _ }

 __ __  public static SerializableType CreateArrayType(AmqpSerializer_serializer,_Type type, Type itemType)
   _   _{
_   _    _  return new ArrayType(serializer, type,_itemType);
 _ _    }

      _ public static SerializableType CreateGenericListType(
 _   _ __  _AmqpSerializer_serializer,
 _      _ _ Type type,
   _   __   Type itemType,
 _     _    MethodAccessor_addAccessor)
__    _ {
    _  _    return new GenericListType(serializer,_type,_itemType, addAccessor);
    __  }

   ___  public static SerializableType_CreateGenericMapType(
     _      AmqpSerializer serializer,
 _  _    ___Type type,
        _ _ MemberAccessor keyAccessor,
_         _ MemberAccessor valueAccessor,
    _       MethodAccessor addAccessor)
  _     {
  _      _  return new_GenericMapType(serializer,_type, keyAccessor, valueAccessor, addAccessor);
   ____ }

 _  _  _public static_SerializableType CreateDescribedListType(
 _ _  __    AmqpSerializer serializer,
            Type_type,
     _    __SerializableType baseType,
 _   _      string descriptorName,
_        __ ulong?_descriptorCode,
   _ _ _  _ SerializableMember[]_members,
 _ _      __Dictionary<Type, SerializableType> knownTypes,
      ____  MethodAccessor[]_serializationCallbacks)
  _  _  {
__     _  _ return new DescribedListType(serializer,_type, baseType, descriptorName,
       _        descriptorCode, members, knownTypes, serializationCallbacks);
     _ _}

   _ __ public static SerializableType CreateDescribedMapType(
 _ _       _AmqpSerializer_serializer,
           _Type_type,
_  __     __SerializableType_baseType,
__     _    string descriptorName,
 __    _ __ ulong? descriptorCode,
 _   _      SerializableMember[] members,
   __ ____  Dictionary<Type, SerializableType>_knownTypes,
            MethodAccessor[] serial