public bool Start() { lock (this) { if (mAppDomain == null) { try { IsStarting = true; System.IO.Directory.Delete(CachePath, true); OnLoad(); CallLogEvent(ExecutingStatus.Success, null, string.Format("domain [{0}] creating.", this.VirtualName)); mDomainAssembly.LoadAssembly(FullPath); CallLogEvent(ExecutingStatus.Success, null, string.Format("domain [{0}] load assembly.", this.VirtualName)); mDomainAssembly.Start(); CallLogEvent(ExecutingStatus.Success, null, string.Format("domain [{0}] start.", this.VirtualName)); mAppDomain.DomainUnload += OnUnload; mStatus = DomainStatus.Started; return(true); } catch (Exception e_) { try { if (mAppDomain != null) { AppDomain.Unload(mAppDomain); } } catch { } mAppDomain = null; LastException = e_; CallLogEvent(ExecutingStatus.Error, e_, string.Format("domain [{0}] start error.", this.VirtualName)); return(false); } finally { IsStarting = false; } } return(true); } }
public static string ToSerialString(this DomainStatus value) => value switch {
public SetStatus(string domain, DomainStatus status) { (Domain, Status) = (domain, status); }
internal static string ToSerializedValue(this DomainStatus value) { switch (value) { case DomainStatus.Active: return("Active"); case DomainStatus.Awaiting: return("Awaiting"); case DomainStatus.Cancelled: return("Cancelled"); case DomainStatus.Confiscated: return("Confiscated"); case DomainStatus.Disabled: return("Disabled"); case DomainStatus.Excluded: return("Excluded"); case DomainStatus.Expired: return("Expired"); case DomainStatus.Failed: return("Failed"); case DomainStatus.Held: return("Held"); case DomainStatus.Locked: return("Locked"); case DomainStatus.Parked: return("Parked"); case DomainStatus.Pending: return("Pending"); case DomainStatus.Reserved: return("Reserved"); case DomainStatus.Reverted: return("Reverted"); case DomainStatus.Suspended: return("Suspended"); case DomainStatus.Transferred: return("Transferred"); case DomainStatus.Unknown: return("Unknown"); case DomainStatus.Unlocked: return("Unlocked"); case DomainStatus.Unparked: return("Unparked"); case DomainStatus.Updated: return("Updated"); case DomainStatus.JsonConverterFailed: return("JsonConverterFailed"); } return(null); }
public bool Start() { lock (this) { if (mAppDomain == null) { try { IsStarting = true; System.IO.Directory.Delete(CachePath,true); OnLoad(); CallLogEvent(ExecutingStatus.Success, null, string.Format("domain [{0}] creating.", this.VirtualName)); mDomainAssembly.LoadAssembly(FullPath); CallLogEvent(ExecutingStatus.Success, null, string.Format("domain [{0}] load assembly.", this.VirtualName)); mDomainAssembly.Start(); CallLogEvent(ExecutingStatus.Success, null, string.Format("domain [{0}] start.", this.VirtualName)); mAppDomain.DomainUnload += OnUnload; mStatus = DomainStatus.Started; return true; } catch (Exception e_) { try { if (mAppDomain != null) { AppDomain.Unload(mAppDomain); } } catch { } mAppDomain = null; LastException = e_; CallLogEvent(ExecutingStatus.Error, e_, string.Format("domain [{0}] start error.", this.VirtualName)); return false; } finally { IsStarting = false; } } return true; } }
private void OnUnload(object sender, EventArgs e) { mStatus = DomainStatus.Stoped; CallLogEvent(ExecutingStatus.Warning, null, string.Format("domain [{0}] unload.", this.VirtualName)); }
/// <summary> /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider" /// /> and <see cref="ignoreCase" /> /// </summary> /// <param name="sourceValue">the <see cref="System.Object"/> to convert from</param> /// <param name="destinationType">the <see cref="System.Type" /> to convert to</param> /// <param name="formatProvider">not used by this TypeConverter.</param> /// <param name="ignoreCase">when set to <c>true</c>, will ignore the case when converting.</param> /// <returns> /// an instance of <see cref="DomainStatus" />, or <c>null</c> if there is no suitable conversion. /// </returns> public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => DomainStatus.CreateFrom(sourceValue);