-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSingleAssemblyComponentResourceManager.cs
More file actions
71 lines (66 loc) · 2.29 KB
/
SingleAssemblyComponentResourceManager.cs
File metadata and controls
71 lines (66 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using System.Collections;
using System.ComponentModel;
using System.Globalization;
using System.IO;
using System.Resources;
internal class SingleAssemblyComponentResourceManager : ComponentResourceManager
{
private Type _contextTypeInfo;
private CultureInfo _neutralResourcesCulture;
public SingleAssemblyComponentResourceManager(Type t) : base(t)
{
this._contextTypeInfo = t;
}
private static void AddResourceSet(Hashtable localResourceSets, CultureInfo culture, ref ResourceSet rs)
{
lock (localResourceSets)
{
ResourceSet objA = (ResourceSet) localResourceSets[culture];
if (objA != null)
{
if (!object.Equals(objA, rs))
{
rs.Dispose();
rs = objA;
}
}
else
{
localResourceSets.Add(culture, rs);
}
}
}
protected override ResourceSet InternalGetResourceSet(CultureInfo culture, bool createIfNotExists, bool tryParents)
{
ResourceSet rs = (ResourceSet) base.ResourceSets[culture];
if (rs != null)
{
return rs;
}
Stream manifestResourceStream = null;
string name = null;
if (this._neutralResourcesCulture == null)
{
this._neutralResourcesCulture = ResourceManager.GetNeutralResourcesLanguage(base.MainAssembly);
}
if (this._neutralResourcesCulture.Equals(culture))
{
culture = CultureInfo.InvariantCulture;
}
name = this.GetResourceFileName(culture);
manifestResourceStream = base.MainAssembly.GetManifestResourceStream(this._contextTypeInfo, name);
if ((manifestResourceStream == null) && !culture.IsNeutralCulture)
{
name = this.GetResourceFileName(culture.Parent);
manifestResourceStream = base.MainAssembly.GetManifestResourceStream(this._contextTypeInfo, name);
}
if (manifestResourceStream != null)
{
rs = new ResourceSet(manifestResourceStream);
AddResourceSet(base.ResourceSets, culture, ref rs);
return rs;
}
return base.InternalGetResourceSet(culture, createIfNotExists, tryParents);
}
}