示例#1
0
        public void Open()
        {
            try
            {
                // Step 4 of the hosting procedure: Enable metadata exchange.
                //var smb = new ServiceMetadataBehavior();
                //smb.HttpGetEnabled = true;

#if NET461
                serviceHost = new ServiceHost(SingletonInstance, BaseAddresses.ToArray());
                serviceHost.AddServiceEndpoint(
                    ContractType,
                    TheBinding,
                    SingletonInstance.GetType().Name);

                if (ServiceBehaviors != null)
                {
                    foreach (var item in ServiceBehaviors)
                    {
                        serviceHost.Description.Behaviors.Add(item);
                    }
                }
                serviceHost.Open();
#endif
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw ex;
            }
        }
示例#2
0
 public static void Log(object logContent, LogType logType = LogType.ltInfo, object logSource = null, int stackDepth = 2)
 {
     if (logSource == null)
     {
         logSource = GetMethodName(stackDepth);
     }
     SingletonInstance.Log(logContent, logType, logSource);
 }
示例#3
0
 public static SingletonInstance GetInstance()
 {
     if (instance == null)
     {
         instance = new SingletonInstance();
     }
     return(instance);
 }
示例#4
0
 public static void RegisterDependency <T> (Func <T> constructor)
     where T : class, ISingletonInstance
 {
     lock (syncRoot) {
         if (dict.ContainsKey(typeof(T)))
         {
             return;
         }
         var instance = new SingletonInstance(constructor);
         dict.Add(typeof(T), instance);
     }
 }
示例#5
0
        /// <exception cref="ArgumentOutOfRangeException"><c></c> is out of range.</exception>
        private void RegisterSimpleIoc(ComponentModel model)
        {
            foreach (var item in model.Services)
            {
                InstanceLifetime lifetime;
                switch (model.LifestyleType)
                {
                case LifestyleType.Undefined:
                case LifestyleType.Singleton:
                    lifetime = new SingletonInstance();
                    break;

                case LifestyleType.Thread:
                    throw new ArgumentOutOfRangeException();
                    break;

                case LifestyleType.Transient:
                    lifetime = new TransitionLifetime();
                    break;

                case LifestyleType.Pooled:
                    throw new ArgumentOutOfRangeException();
                    break;

                case LifestyleType.PerWebRequest:
                    throw new ArgumentOutOfRangeException();
                    break;

                case LifestyleType.Custom:
                    throw new ArgumentOutOfRangeException();
                    break;

                case LifestyleType.Scoped:
                    throw new ArgumentOutOfRangeException();
                    break;

                case LifestyleType.Bound:
                    throw new ArgumentOutOfRangeException();
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                SimpleIoc.Default.Register(item, model.Implementation, lifetime);
            }
        }
示例#6
0
 public static void SetLogFileMaxCount(uint logFileMaxCount)
 {
     SingletonInstance.SetLogFileMaxCount(logFileMaxCount);
 }
示例#7
0
 /// <summary>
 /// 此属性用于设定是否即时把缓冲中的内容写入日志文件。默认值为true
 /// </summary>
 /// <param name=""></param>
 public static void SetIsImmediateFlush(bool isImmediateFlush)
 {
     SingletonInstance.SetIsImmediateFlush(isImmediateFlush);
 }
示例#8
0
        //public static bool LogInformation(object logSource, object logContent)
        //{
        //    return SingletonInstance.WriteLog(logContent,LogType.ltInfo, logSource);
        //}

        //public static bool LogWarning(object logSource, object logContent)
        //{
        //    return SingletonInstance.WriteLog(logContent,LogType.ltWarning, logSource);
        //}

        //public static bool LogError(object logSource, object logContent)
        //{
        //    return SingletonInstance.WriteLog(logContent, LogType.ltError, logSource);
        //}

        //public static bool LogException(object logSource, object logContent)
        //{
        //    return SingletonInstance.WriteLog(logContent,LogType.ltException, logSource);
        //}

        /// <summary>
        /// 设置日志记录级别,所有<= f_Level类型的日志都会被记录。
        /// </summary>
        /// <param name="loglevel"></param>
        public static void SetLogLevel(LogType loglevel)
        {
            SingletonInstance.SetLogLevel(loglevel);
        }