рд╕реЗрдЯрд▓рд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯ рдкрдврд╝рдиреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖
рд░реВрдк рд╕реЗ рд╕реЗрдЯрд▓рд░реНрд╕ рдСрдирд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдореБрдЭреЗ рдХреБрдЫ рд╣рдж рддрдХ рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд╕реА # рдореЗрдВ рдПрдордПрдл рдкреНрд░рд╛рд░реВрдк рдХреЗ рдкрд╣рд▓реВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЗрд╕ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╣рдореЗрдВ рд▓реЙрдЧрд┐рди рдЪрд░рдгреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ, рдЪрд▓реЛ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ:
1. рдЪрд╛рд░реНрд▓реНрд╕ - рдПрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА рдЬреЛ рдПрдордПрдл рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдкрд░реАрдХреНрд╖рдг рд▓рдВрдмреА рдирд╛рдЧ-рд╕реНрдХреНрд░реАрди рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реИ, рдпрд╣ рд╣рд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред
2. Fiddler рднреА рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╣реИ, рдЬреЛ рдХрд┐ https рдЯреНрд░реИрдлрд╝рд┐рдХ (рдлреНрд░реА) рд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдкрдЯрддреА рд╣реИ ред
3. рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ, рдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ:
- AS3 рдЬрд╛рджреВрдЧрд░ - рддреЗрдЬ, рдЖрд╕рд╛рди, рдлреНрд▓реИрд╢ рдкреНрд░реЛрдЯреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рддрд╛ рд╣реИ (рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ, рдХрднреА-рдХрднреА рдордЬрд╛рдХрд┐рдпрд╛ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд╛рдЧ-рд╕реНрдХреНрд░реАрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред
- рдПрд╕рдбрдмреНрд▓реНрдпреВрдПрдл рдбрд┐рдХреНрд░рд┐рдкреНрдЯ (рдореБрдХреНрдд) + рдХрд┐рд╕реА рднреА рдлреНрд▓реИрд╢ рдбрд┐рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП http://www.sothink.com/ (рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрдо рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ)ред
4. рдлреНрд▓реЛрд░реАрдирдлреИрдХреНрд╕ - рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдврд╛рдВрдЪрд╛ рдЬреЛ рдПрдордПрдл 0 рдФрд░ рдПрдордПрдл 3 рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдХреЗ рд╕рд╛рде, рдЖрдк рдЧреЗрдо рд▓реЙрдЧрд┐рди рдХреЗ рдЪрд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
1. рд╕реАрдзреЗ https://www.diesiedleronline.de/de/api/user/login рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ
2. "рдмрд┐рдЧ рдмреНрд░рджрд░" рд╕реЗрд╡рд╛ http://bb.diesiedleronline.de/ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреИрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рддреНрд░ рдХреБрдВрдЬреА рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
3. рдкрд╣рд▓реЗ рдкреИрдХреЗрдЬ рдЦреЗрд▓ рдХреЗ рдореБрдЦреНрдп рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдВред
рдЖрдЗрдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд▓реЙрдЧрд┐рди рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд┐рдбрд▓рд░ рдХреЛ рдЪрд▓рд╛рдПрдВ, рдЖрдЗрдП рд╣рдо рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ https рдЯреНрд░реИрдлрд╝рд┐рдХ рдЦреЛрд▓реЗрдВ рдФрд░ рдЧреЗрдо рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдвреВрдВрдвреЗрдВрдЧреЗ рдФрд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рд░реВрдк рджреЗрдЦреЗрдВрдЧреЗред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХ рдЪреАрдЬреЗрдВ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬреИрд╕реЗ http рдЕрдиреБрд░реЛрдз, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рдпрд╣ рдЬрд╛рдирддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд╣реА рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
System. Net . ServicePointManager . ServerCertificateValidationCallback = delegate ( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return true ; } ;
рдЙрд╕реА рддрд░рд╣ рд╣рдо рдЭрд╛рдБрдХрддреЗ рд╣реИрдВ рдЬреЛ рдмрд┐рдЧ рдмреНрд░рджрд░ рдХреЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЧреЗрдЯрд╡реЗ рдПрдбреНрд░реЗрд╕, рдЪреИрдЯ рд╕рд░реНрд╡рд░ рдХреАрдЬ рдорд┐рд▓рддреА рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдБ рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореВрд▓ рдлрд╝реНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛрдб рдкрд░ рдЭрд╛рдВрдХрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХред
FluorineFx
рдЦреЗрд▓ рдлреНрд▓реЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдордПрдл 3 рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЧреЗрдЯрд╡реЗ рдПрдбреНрд░реЗрд╕ (рдмреАрдмреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдЬреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЯреНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ, рд╕реНрд╡рдпрдВ рдкреИрд░рд╛рдореАрдЯрд░ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЪрд╛рд░реНрд▓реНрд╕ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдкреИрдХреЗрдЬ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ dServerCall рдСрдмреНрдЬреЗрдХреНрдЯ, рдЬрд┐рд╕рдореЗрдВ dataObject рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рд╣реИред
рдареАрдХ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдЬрд▓реНрджреА рд╕реЗ рдХреНрд▓рд╛рд╕ рд╕реНрдХреЗрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рдореВрд▓ рдЪреАрдЬрд╝ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдПрдВ ...
рдлреНрд▓реЛрд░реАрдирдПрдХреНрд╕ - рдПрдХ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣рдо рд╕рднреА рдХреЛ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдХрд░ - рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░рдг (рдорд┐рд▓рд╛рди)ред рд╣рдореЗрдВ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдкреИрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА
- [ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ ( рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯрдЯрд╛рд░реНрдЧреЗрдЯреНрд╕ред рдкреНрд░реЙрдкрд░реНрдЯреА | рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯрдЯрд╛рд░реНрдЧреЗрдЯреНрд╕ рдХреНрд▓рд╛рд╕ ) ред
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ AmfObjectName : рд╕рд┐рд╕реНрдЯрдо ред рдЧреБрдг
- {
- public const string DefaultPrefix = "defaultGame.Communication.VOред" ;
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо { рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ; рд╕реЗрдЯ ; }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ AmfObjectName ( рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо )
- {
- рдирд╛рдо = рдирд╛рдо ;
- }
- }
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЕрдкрдиреЗ рдмреЙрдЯ рдореЗрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд╛рдо рдФрд░ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░реЗрдВрдЧреЗред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдмреЗрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ WriteAMF3Object рддрд░реАрдХреЛрдВ рдореЗрдВ IO.AMFWriter рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд╛рдВрдЪ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╣рдо рдлреНрд▓реЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ amf3 рдкреНрд░рд╛рд░реВрдк) рдФрд░ GetMemberред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓рддрд╛ рд╕реЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ- рдпрджрд┐ ( IsClassAttributed ( рдкреНрд░рдХрд╛рд░ ) )
- {
- propertyInfo = FindProperty ( рдкреНрд░рдХрд╛рд░, рд╕рджрд╕реНрдпред рдирд╛рдо ) ;
- }
рдЬрд╣рд╛рдБ
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рдмреВрд▓ IsClassAttributed ( рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрд╛рд░ )
- {
- var res = рдкреНрд░рдХрд╛рд░ред GetCustomAttributes ( рдЯрд╛рдЗрдкреЛрдлрд╝ ( AmfObjectName ) , рдЧрд▓рдд ) ;
- рд╡рд╛рдкрд╕реА рдЕрд╢рдХреНрдд ! = res && resред рд▓рдВрдмрд╛рдИ > 0 ;
- }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╕рдВрдкрддреНрддрд┐рдЗрдиреНрдлреЛ рдлрд╛рдЗрдВрдбрдкреНрд░реЙрдкрд░реНрдЯреА ( рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрд╛рд░, рд╕реНрдЯреНрд░рд┐рдВрдЧ amfObjName )
- {
- foreach ( рдкреНрд░рдХрд╛рд░ рдореЗрдВ var рдкреНрд░реЛрдкред GetProperties ( ) )
- {
- var attrs = propред GetCustomAttributes ( рдЯрд╛рдЗрдкреЛрдлрд╝ ( AmfObjectName ) , рдЧрд▓рдд ) ;
- if ( null == Attrs || 0 == attrsред рд▓рдВрдмрд╛рдИ ред ( ( AmfObjectName ) attrs [ 0 ] ) ред рдирд╛рдо ! = amfObjName )
- {
- рдЬрд╛рд░реА рд░рдЦреЗрдВ ;
- }
- рд╡рд╛рдкрд╕реА рдкреНрд░реЛрдк ;
- }
- рд╡рд╛рдкрд╕реА рд╢реВрдиреНрдп ;
- }
рдЗрд╕реА рддрд░рд╣, AMFReader рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдмреЗрд╢рдХ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЛ рдорд┐рд▓реА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ deserialization рдмрдирд╛рддреЗ рд╕рдордп рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдлреНрд▓реЛрд░реАрди рдХреИрд╢ рдореЗрдВ "рд░рдЬрд┐рд╕реНрдЯрд░" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ObjectFactory рд╡рд░реНрдЧ рджреЗрдЦреЗрдВ рдФрд░ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╢реВрдиреНрдп AddToLocate ( рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрд╛рд░, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореИрдкрдирд╛рдо )
- {
- _typeCacheред рдЬреЛрдбрд╝реЗрдВ ( рдореИрдкрдирд╛рдо, рдкреНрд░рдХрд╛рд░ ) ;
- }
рдФрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдЕрдкрдиреА рд╕рднреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ
- foreach ( рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ var рдкреНрд░рдХрд╛рд░ред GetExecutingAssembly ( ) ред GetTypes ( ) )
- {
- var attrs = рдкреНрд░рдХрд╛рд░ред GetCustomAttributes ( рдЯрд╛рдЗрдкреЛрдлрд╝ ( AmfObjectName ) , рдЧрд▓рдд ) ;
- if ( null == attrs || 0 == attrsред рд▓рдВрдмрд╛рдИ )
- {
- рдЬрд╛рд░реА рд░рдЦреЗрдВ ;
- }
- ObjectFactoryред AddToLocate ( рдкреНрд░рдХрд╛рд░, AmfObjectNameред DefaultPrefix + ( ( AmfObjectName ) attrs [ 0 ] ) рдирд╛рдо ) ;
- }
рд╡реИрд╕реЗ, AmfObjectName.DefaultPrefix рдЕрднреА рддрдХ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдПрдХ рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдШрд╛рд╡ рд╣реИ :)
рдЦреИрд░, рдЕрдм рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ:
- рдиреЗрдорд╕реНрдкреЗрд╕ рд╕реЗрдЯрд▓рд░реНрд╕рдХрдВрдЯреНрд░реЛрд▓ред рд╡рд╕реНрддреБрдУрдВ
- {
- [ AmfObjectName ( "dServerCall" ) ]
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ
- {
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ int PlayerZoneId = 0 ;
- [ AmfObjectName ( "рдкреНрд░рдХрд╛рд░" ) ]
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int рдкреНрд░рдХрд╛рд░ { рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ; рд╕реЗрдЯ ; }
- [ AmfObjectName ( "рдЬрд╝реЛрди" ) ]
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯ рдЬреЛрдирдЖрдИрдб { рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ; рд╕реЗрдЯ ; }
- [ AmfObjectName ( "dataObject" ) ]
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ DataObject { рдорд┐рд▓рддрд╛ рд╣реИ ; рд╕реЗрдЯ ; }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдирд┐рдкрдЯрд╛рдирдХрд░реНрддрд╛ ( рд╕реЗрдЯрд▓рд░рдореИрд╕реЗрдЬ рд╕рдВрджреЗрд╢, рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛рдСрдмреНрдЬреЗрдХреНрдЯ )
- {
- рдЯрд╛рдЗрдк = ( рдЗрдВрдЯ ) рд╕рдВрджреЗрд╢ ;
- рдЬрд╝реЛрдирд┐рдб = рдкреНрд▓реЗрдпрд░рдЬрд╝реЛрдирдЖрдИрдб ;
- DataObject = dataObject ;
- }
- }
- }
рдбреЗрдЯрд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд╣рд▓реЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд░реНрд▓реНрд╕ рдХреЛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдмрдирд╛рддреЗ рд╣реИрдВ, рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ ... рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЪрд╛рд░реНрд▓реА рдЧрд┐рд░ рдЧрдпрд╛ред рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрд░рд╛рдзреА рдХрд╛ рдирд╛рдо рд╣реИ: dUniqueIDред рдЕрдкрд╡рд╛рдж рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, IExternalizable рддрддреНрд╡ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо Google рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдЙрд╕рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рдХреНрд░рдо рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реБрдП, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрдордХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рдЙрд╕рдХреА рдЬрд╛рд╕реВрд╕реА рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдЦреБрд▓рд╛ рдЬрд╛рджреВрдЧрд░, рдЗрд╕реЗ рдПрдХ рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ, рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ рдФрд░ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рджреЗрдЦреЗрдВ

рдорд╣рд╛рди, рдпрд╣ рдлреНрд▓реЛрд░реАрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд░рд╣рддрд╛ рд╣реИ:
- [ AmfObjectName ( "dUniqueID" ) ]
- рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рд╕реЗрдЯрд▓рд░рдпреВрдирд┐рдХреИрдб : IExternalizable
- {
- [ AmfObjectName ( " рдпреВрдирд┐рдХрдЖрдИрдбреА 1 " ) ]
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int UniqueID1 { рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ; рд╕реЗрдЯ ; }
- [ AmfObjectName ( " рдпреВрдирд┐рдХрдЖрдИрдбреА 2 " ) ]
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int UniqueID2 { рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ; рд╕реЗрдЯ ; }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп ReadExternal ( IDataInput рдЗрдирдкреБрдЯ )
- {
- UniqueID1 = рдЗрдирдкреБрдЯред ReadInt ( ) ;
- рдЕрдиреЛрдЦрд╛ реи = рдЗрдирдкреБрдЯред ReadInt ( ) ;
- }
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп WriteExternal ( IDataOutput рдЖрдЙрдЯрдкреБрдЯ )
- {
- рдЙрддреНрдкрд╛рджрдиред WriteInt ( UniqueID1 ) ;
- рдЙрддреНрдкрд╛рджрдиред WriteInt ( UniqueID2 ) ;
- }
- }
рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ, рддреНрд░реБрдЯрд┐ рдХреЛ рджреВрд░ рдХрд░рдиреЗ, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдкрд╣рд▓рд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд░рд╣рддрд╛ рд╣реИ:

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣рдореЗрд╢рд╛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реЛрддреА рд╣реИрдВ :)
рдпрджрд┐ рдЗрдЪреНрдЫрд╛ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЕрдкрд▓реЛрдб рдХрд░реВрдВрдЧрд╛ред