using System; namespace System.Runtime.Versioning { /// Provides methods to aid developers in writing version-safe code. This class cannot be inherited. // Token: 0x0200049D RID: 1181 public static class VersioningHelper { // Token: 0x06002C9A RID: 11418 RVA: 0x00092B50 File Offset: 0x00090D50 private static int GetDomainId() { return 0; } // Token: 0x06002C9B RID: 11419 RVA: 0x00092B54 File Offset: 0x00090D54 private static int GetProcessId() { return 0; } // Token: 0x06002C9C RID: 11420 RVA: 0x00092B58 File Offset: 0x00090D58 private static string SafeName(string name, bool process, bool appdomain) { if (process && appdomain) { return string.Concat(new string[] { name, "_", VersioningHelper.GetProcessId().ToString(), "_", VersioningHelper.GetDomainId().ToString() }); } if (process) { return name + "_" + VersioningHelper.GetProcessId().ToString(); } if (appdomain) { return name + "_" + VersioningHelper.GetDomainId().ToString(); } return name; } // Token: 0x06002C9D RID: 11421 RVA: 0x00092BF0 File Offset: 0x00090DF0 private static string ConvertFromMachine(string name, ResourceScope to, Type type) { switch (to) { case ResourceScope.Machine: return VersioningHelper.SafeName(name, false, false); case ResourceScope.Process: return VersioningHelper.SafeName(name, true, false); case ResourceScope.AppDomain: return VersioningHelper.SafeName(name, true, true); } throw new ArgumentException("to"); } // Token: 0x06002C9E RID: 11422 RVA: 0x00092C44 File Offset: 0x00090E44 private static string ConvertFromProcess(string name, ResourceScope to, Type type) { if (to < ResourceScope.Process || to >= ResourceScope.Private) { throw new ArgumentException("to"); } bool flag = (to & ResourceScope.AppDomain) == ResourceScope.AppDomain; return VersioningHelper.SafeName(name, false, flag); } // Token: 0x06002C9F RID: 11423 RVA: 0x00092C7C File Offset: 0x00090E7C private static string ConvertFromAppDomain(string name, ResourceScope to, Type type) { if (to < ResourceScope.AppDomain || to >= ResourceScope.Private) { throw new ArgumentException("to"); } return VersioningHelper.SafeName(name, false, false); } /// Returns a version-safe name based on the specified resource name and the intended resource consumption source. /// A version-safe name. /// The name of the resource. /// The scope of the resource. /// The desired resource consumption scope. // Token: 0x06002CA0 RID: 11424 RVA: 0x00092CAC File Offset: 0x00090EAC [MonoTODO("process id is always 0")] public static string MakeVersionSafeName(string name, ResourceScope from, ResourceScope to) { return VersioningHelper.MakeVersionSafeName(name, from, to, null); } /// Returns a version-safe name based on the specified resource name, the intended resource consumption scope, and the type using the resource. /// A version-safe name. /// The name of the resource. /// The beginning of the scope range. /// The end of the scope range. /// The of the resource. /// The values for and are invalid. The resource type in the enumeration is going from a more restrictive resource type to a more general resource type. /// /// is null. // Token: 0x06002CA1 RID: 11425 RVA: 0x00092CB8 File Offset: 0x00090EB8 [MonoTODO("type?")] public static string MakeVersionSafeName(string name, ResourceScope from, ResourceScope to, Type type) { if ((from & ResourceScope.Private) != ResourceScope.None) { to &= ~(ResourceScope.Private | ResourceScope.Assembly); } else if ((from & ResourceScope.Assembly) != ResourceScope.None) { to &= ~ResourceScope.Assembly; } string text = ((name != null) ? name : string.Empty); switch (from) { case ResourceScope.Machine: break; case ResourceScope.Process: goto IL_8F; default: switch (from) { case ResourceScope.Machine | ResourceScope.Private: break; case ResourceScope.Process | ResourceScope.Private: goto IL_8F; default: switch (from) { case ResourceScope.Machine | ResourceScope.Assembly: goto IL_86; case ResourceScope.Process | ResourceScope.Assembly: goto IL_8F; case ResourceScope.AppDomain | ResourceScope.Assembly: goto IL_98; } throw new ArgumentException("from"); case ResourceScope.AppDomain | ResourceScope.Private: goto IL_98; } break; case ResourceScope.AppDomain: goto IL_98; } IL_86: return VersioningHelper.ConvertFromMachine(text, to, type); IL_8F: return VersioningHelper.ConvertFromProcess(text, to, type); IL_98: return VersioningHelper.ConvertFromAppDomain(text, to, type); } } }