コード例 #1
0
        public static T Run <T>(string name, DomainDelegate method, params object[] parameters)
        {
            AppDomain domain = null;

            try
            {
                domain = AppDomain.CreateDomain(name);
                var key    = string.Concat("RESULT", method.GetHashCode());
                var runner = new Runner(method, key, parameters);

                domain.DoCallBack(new CrossAppDomainDelegate(runner.Invoke));

                return((T)domain.GetData(key));
            }
#if DEBUG
            catch (Exception error)
            {
                System.Console.WriteLine(error);
                throw;
            }
#endif
            finally
            {
                if (domain != null)
                {
                    AppDomain.Unload(domain);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// The shop’s primary domain.
        /// </summary>
        public ShopQuery primaryDomain(DomainDelegate buildQuery)
        {
            Query.Append("primaryDomain ");

            Query.Append("{");
            buildQuery(new DomainQuery(Query));
            Query.Append("}");

            return(this);
        }
コード例 #3
0
 public static object Run(string name, DomainDelegate method, params object[] parameters)
 {
     return(Run <object>(name, method, parameters));
 }
コード例 #4
0
 public Runner(DomainDelegate method, string key, object[] args)
 {
     this.Method    = method;
     this.Key       = key;
     this.Arguments = args;
 }