Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ MakeVersionSafeName() [2/2]

static string System.Runtime.Versioning.VersioningHelper.MakeVersionSafeName ( string? name,
ResourceScope from,
ResourceScope to,
Type? type )
inlinestatic

Definition at line 12 of file VersioningHelper.cs.

13 {
14 ResourceScope resourceScope = from & (ResourceScope.Machine | ResourceScope.Process | ResourceScope.AppDomain | ResourceScope.Library);
15 ResourceScope resourceScope2 = to & (ResourceScope.Machine | ResourceScope.Process | ResourceScope.AppDomain | ResourceScope.Library);
16 if (resourceScope > resourceScope2)
17 {
18 throw new ArgumentException(SR.Format(SR.Argument_ResourceScopeWrongDirection, resourceScope, resourceScope2), "from");
19 }
20 SxSRequirements requirements = GetRequirements(to, from);
21 if ((requirements & (SxSRequirements.AssemblyName | SxSRequirements.TypeName)) != 0 && type == null)
22 {
23 throw new ArgumentNullException("type", SR.ArgumentNull_TypeRequiredByResourceScope);
24 }
25 StringBuilder stringBuilder = new StringBuilder(name);
26 char value = '_';
27 if ((requirements & SxSRequirements.ProcessID) != 0)
28 {
29 stringBuilder.Append(value);
30 stringBuilder.Append('p');
31 stringBuilder.Append(Environment.ProcessId);
32 }
33 if ((requirements & SxSRequirements.CLRInstanceID) != 0)
34 {
35 string cLRInstanceString = GetCLRInstanceString();
36 stringBuilder.Append(value);
37 stringBuilder.Append('r');
38 stringBuilder.Append(cLRInstanceString);
39 }
40 if ((requirements & SxSRequirements.AppDomainID) != 0)
41 {
42 stringBuilder.Append(value);
43 stringBuilder.Append("ad");
44 stringBuilder.Append(AppDomain.CurrentDomain.Id);
45 }
46 if ((requirements & SxSRequirements.TypeName) != 0)
47 {
48 stringBuilder.Append(value);
49 stringBuilder.Append(type.Name);
50 }
51 if ((requirements & SxSRequirements.AssemblyName) != 0)
52 {
53 stringBuilder.Append(value);
54 stringBuilder.Append(type.Assembly.FullName);
55 }
56 return stringBuilder.ToString();
57 }
static SxSRequirements GetRequirements(ResourceScope consumeAsScope, ResourceScope calleeScope)
override string ToString()
StringBuilder Append(char value, int repeatCount)

References System.Text.StringBuilder.Append(), System.SR.Argument_ResourceScopeWrongDirection, System.SR.ArgumentNull_TypeRequiredByResourceScope, System.AppDomain.CurrentDomain, System.SR.Format(), System.Runtime.Versioning.VersioningHelper.GetCLRInstanceString(), System.Runtime.Versioning.VersioningHelper.GetRequirements(), System.Environment.ProcessId, System.Text.StringBuilder.ToString(), System.type, and System.value.