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; } }
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); }
public static SingletonInstance GetInstance() { if (instance == null) { instance = new SingletonInstance(); } return(instance); }
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); } }
/// <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); } }
public static void SetLogFileMaxCount(uint logFileMaxCount) { SingletonInstance.SetLogFileMaxCount(logFileMaxCount); }
/// <summary> /// 此属性用于设定是否即时把缓冲中的内容写入日志文件。默认值为true /// </summary> /// <param name=""></param> public static void SetIsImmediateFlush(bool isImmediateFlush) { SingletonInstance.SetIsImmediateFlush(isImmediateFlush); }
//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); }