рд╕рдВрдХрд▓рди рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдордХреНрдЦреА рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛

рд╕рдорд╕реНрдпрд╛



рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдЖрдкрдХреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕, рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдЧрдгрдирд╛ рдЖрджрд┐ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред



рдирд┐рд░реНрдгрдп



.NET рдЖрдкрдХреЛ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред







рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди



рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдХреЛрдбрдбреЛрдордкреНрд░реЙрдЗрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд┐рд╕реА рднреА .NET рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдЗрдВрд╕реНрдЯрд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред



  1. рдирд┐рдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ EvalCode ( рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░рдирд╛рдо, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдирд╛рдо, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрд░реЛрддрдХреЛрдб )
  2. {
  3. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ = ":)" ;
  4. var рд╕рдВрдХрд▓рдХ = рдХреЛрдбрдбреЛрдордкреНрд░реЙрдЗрдбрд░ред CreateProvider ( "CSharp" ) ;
  5. var рдкреИрд░рд╛рдореАрдЯрд░ = рдирдпрд╛ CompilerParameters
  6. {
  7. рд╕рдВрдХрд▓рдХ = "/ t: рдкреБрд╕реНрддрдХрд╛рд▓рдп" ,
  8. GenerateInMemory = рд╕рддреНрдп ,
  9. DeugugInformation = рд╕рдЪ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
  10. } ;
  11. var рдкрд░рд┐рдгрд╛рдо = рд╕рдВрдХрд▓рдХред CompileAssemblyFromSource ( рдкреИрд░рд╛рдореАрдЯрд░, sourceCode ) ;
  12. рдЕрдЧрд░ ( рдкрд░рд┐рдгрд╛рдоред рддреНрд░реБрдЯрд┐рдпрд╛рдВ ред рд╣рд╕рд░рддреЗрдВ )
  13. {
  14. var рд╡рд┐рдзрд╛рдирд╕рднрд╛ = рдкрд░рд┐рдгрд╛рдоред рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЧрдП рд╕рдВрдХрд▓рди ;
  15. var рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рдЯрд╛рдЗрдк = рдЕрд╕реЗрдВрдмрд▓реАред рдЧреЗрдЯ рдЯрд╛рдЗрдк ( рдЯрд╛рдЗрдкрдиреЗрдо ) ;
  16. var рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ = рдЙрддреНрдкреНрд░реЗрд░рдХред CreateInstance ( рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рдЯрд╛рдЗрдк ) ;
  17. рдЖрдЙрдЯрдкреБрдЯ = ( рд╕реНрдЯреНрд░рд┐рдВрдЧ ) рдЗрдирд╡реЛрдХрдореЗрдереЛрдб ( рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рдЯрд╛рдЗрдк, рдореЗрдердирд╛рдо, рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛, рдирдИ рд╡рд╕реНрддреБ [ ] { рдЖрдЙрдЯрдкреБрдЯ } ) ;
  18. рд╡рд╛рдкрд╕реА рдЙрддреНрдкрд╛рджрди ;
  19. }
  20. рдЖрдЙрдЯрдкреБрдЯ = " \ r \ n рд╣реНрдпреВрд╕реНрдЯрди, рд╣рдореЗрдВ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ!" ;
  21. рд╡рд╛рдкрд╕реА рдХреЗ рдкрд░рд┐рдгрд╛рдоред рддреНрд░реБрдЯрд┐рдпрд╛рдБред рдХрд╛рд╕реНрдЯ < CompilerError > ( ) ред рдПрдЧреНрд░реАрдЧреЗрдЯ ( рдЖрдЙрдЯрдкреБрдЯ, ( рдХрд░рдВрдЯ, рд╕реАрдпреВ ) => рдХрд░рдВрдЯ + рд╕реНрдЯреНрд░рд┐рдВрдЧ ред рдлреЙрд░реНрдореЗрдЯ ( " \ r \ n рд▓рд╛рдЗрди {0}: {1}" , рд╕реАред рд▓рд╛рдЗрди , рд╕реА.рдИред ErrorText ) ) ;
  22. }
  23. [ FileIOPermission ( SecurityActionред рдЕрд╕реНрд╡реАрдХрд╛рд░ , рдЕрдкреНрд░рддрд┐рдмрдВрдзрд┐рдд = рд╕рддреНрдп ) ]
  24. рдирд┐рдЬреА рдСрдмреНрдЬреЗрдХреНрдЯ InvokeMethod ( рдкреНрд░рдХрд╛рд░ рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рдЯрд╛рдЗрдк, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдирд╛рдо, рдСрдмреНрдЬреЗрдХреНрдЯ рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛, рдСрдмреНрдЬреЗрдХреНрдЯ [ ] рд╡рд┐рдзрд┐рдкрд╛рд░реНрдХ )
  25. {
  26. рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ ред рдЗрдирд╡реЛрдХрдореЗрдореНрдмрд░ ( рдореЗрдердбрдирд╛рдо , рд╕рд┐рд╕реНрдЯрдоред рдкрд░рд╛рд╡рд░реНрддрди ред рдмрд╛рдЗрдВрдбрд┐рдВрдЧрдлреНрд▓реИрдЧреНрд╕ ред рдЗрдирд╡реЛрдХрдореЗрдереЛрдб , рдЕрд╢рдХреНрдд , рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛, рдореЗрдердкрд░рд╛рдо ) ;
  27. }




рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд▓реМрдХрд┐рдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рд╣рдо рд╕рдВрдХрд▓рдХ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдбреАрдПрд▓рдПрд▓ рдорд┐рд▓рддрд╛ рд╣реИред рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ рдЪрд▓рд╛рдПрдВред



рдХреЛрдб рдЗрди рдПрдХреНрд╢рди:





рдкрдВрдХреНрддрд┐ 27 рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк рдЙрди рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдХреЛрдб (рди рдХреЗрд╡рд▓ рдЧрддрд┐рд╢реАрд▓) рд╣реИред .NET рдореЗрдВ, рдПрдХ рдХреЛрдб рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдореИрдХреЗрдирд┐рдЬреНрдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдПрдЧреНрдЬреАрдХреНрдпреВрдЯреЗрдмрд▓ рдХреЛрдб рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рд╕реБрд░рдХреНрд╖рд╛ рддреНрд░реБрдЯрд┐:





рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдмрд╣реБрдд "рд╣рд╛рдирд┐рд░рд╣рд┐рдд" рджрд┐рдЦрддрд╛ рд╣реИ, рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд░реНрддрдорд╛рди рдбреЛрдореЗрди рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдбреЗрдореЛ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдореЗрдореЛрд░реА рдмрд╕ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИ (.NET рдбреЛрдореЗрди рд╕реЗ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред



рдбреЗрдореЛ:

DynDllFunWf.zip



All Articles