public static byte[] GetBytes(this MailMessage mailMessage)
        {
            Assembly assembly        = typeof(SmtpClient).Assembly;
            Type     type            = assembly.GetType("System.Net.Mail.MailWriter");
            var      parametersTypes = new[]
            {
                typeof(Stream)
            };
            object x = null;

            using (Stream stream = new MemoryStream())
            {
                var constructorInfo = type.GetConstructor
                                      (
                    BindingFlags.Instance | BindingFlags.NonPublic
                    , null
                    , parametersTypes
                    , null
                                      );
                var func = DynamicCallMethodExpressionTreeInvokerHelper.CreateNewInstanceConstructorInvokerFunc <object>
                           (
                    type
                    , constructorInfo
                           );
                x = func(new[] { stream });
                var action = DynamicCallMethodExpressionTreeInvokerHelper.CreateMethodCallInvokerAction <MailMessage>
                             (
                    typeof(MailMessage)
                    , () =>
                {
                    var methodInfo = typeof(MailMessage).GetMethod
                                     (
                        "Send"
                        , BindingFlags.NonPublic | BindingFlags.Instance
                        , null
                        , new[] { type, typeof(bool) }
                        , null
                                     );
                    return(methodInfo);
                }
                             );
                action
                (
                    mailMessage
                    , new[]
                {
                    x
                    , true
                }
                );
                byte[] buffer = StreamDataHelper.ReadDataToBytes(stream);
                return(buffer);
            }
        }
        static JScriptEvaluator()
        {
            CodeDomProvider    provider = CodeDomProvider.CreateProvider("JScript");
            CompilerParameters parameters;

            parameters = new CompilerParameters();
            parameters.GenerateInMemory = true;
            CompilerResults results;

            results = provider.CompileAssemblyFromSource(parameters, _JScript);
            Assembly assembly = results.CompiledAssembly;

            _evaluatorType = assembly.GetType("Microshaoft.JScriptEvaluator");
            var constructorInfo = _evaluatorType.GetConstructors().First();
            var func            = DynamicCallMethodExpressionTreeInvokerHelper.CreateNewInstanceConstructorInvokerFunc
                                  (
                _evaluatorType
                , constructorInfo
                                  );

            _evaluator = func(null);
            //_evaluator = Activator.CreateInstance(_evaluatorType);
        }