Example #1
0
        /// <summary>
        /// Call Method in the class
        /// </summary>
        /// <param name="classNameSpace"></param>
        /// <param name="method"></param>
        /// <param name="param"></param>
        /// <returns></returns>
        public object Invoke(string classNameSpace, string method, object[] param)
        {
            RemoteLoaderFactory factory =
                (RemoteLoaderFactory)
                ObjAppDomain.CreateInstance("MiniAbp", "MiniAbp.Compile.RemoteLoaderFactory")
                .Unwrap();
            object objObject = factory.Create(_dllName, classNameSpace, null);

            if (objObject == null)
            {
                throw new ArgumentNullException("Error: " + "Couldn't load class.");
            }
            IRemoteInterface objRemote = (IRemoteInterface)objObject;

            //Initialize db configuration
            if (!IsIntialized)
            {
                lock (_initObjLock)
                {
                    if (!IsIntialized)
                    {
                        var dbSetting = IocManager.Instance.Resolve <DatabaseConfiguration>();
                        objRemote.Initialize(dbSetting.ConnectionString, dbSetting.Dialect);
                        IsIntialized = true;
                    }
                }
            }
            return(objRemote.Invoke(method, param));
        }