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

◆ CreateResourceSet()

ResourceSet System.Resources.ManifestBasedResourceGroveler.CreateResourceSet ( Stream store,
Assembly assembly )
inlinepackage

Definition at line 102 of file ManifestBasedResourceGroveler.cs.

103 {
104 if (store.CanSeek && store.Length > 4)
105 {
106 long position = store.Position;
108 int num = binaryReader.ReadInt32();
109 if (num == ResourceManager.MagicNumber)
110 {
111 int num2 = binaryReader.ReadInt32();
112 string text = null;
113 string text2 = null;
114 if (num2 == ResourceManager.HeaderVersionNumber)
115 {
116 binaryReader.ReadInt32();
117 text = binaryReader.ReadString();
118 text2 = binaryReader.ReadString();
119 }
120 else
121 {
122 if (num2 <= ResourceManager.HeaderVersionNumber)
123 {
124 throw new NotSupportedException(SR.Format(SR.NotSupported_ObsoleteResourcesFile, _mediator.MainAssembly.GetName().Name));
125 }
126 int num3 = binaryReader.ReadInt32();
127 long offset = binaryReader.BaseStream.Position + num3;
128 text = binaryReader.ReadString();
129 text2 = binaryReader.ReadString();
130 binaryReader.BaseStream.Seek(offset, SeekOrigin.Begin);
131 }
132 store.Position = position;
134 {
135 return new RuntimeResourceSet(store, permitDeserialization: true);
136 }
137 if (ResourceReader.AllowCustomResourceTypes)
138 {
140 }
141 throw new NotSupportedException(SR.ResourceManager_ReflectionNotAllowed);
142 }
143 store.Position = position;
144 }
145 if (_mediator.UserResourceSet == null)
146 {
147 return new RuntimeResourceSet(store, permitDeserialization: true);
148 }
149 object[] args = new object[2] { store, assembly };
150 try
151 {
152 try
153 {
154 return (ResourceSet)Activator.CreateInstance(_mediator.UserResourceSet, args);
155 }
156 catch (MissingMethodException)
157 {
158 }
159 return (ResourceSet)Activator.CreateInstance(args: new object[1] { store }, type: _mediator.UserResourceSet);
160 }
161 catch (MissingMethodException innerException)
162 {
163 throw new InvalidOperationException(SR.Format(SR.InvalidOperation_ResMgrBadResSet_Type, _mediator.UserResourceSet.AssemblyQualifiedName), innerException);
164 }
165 }
virtual AssemblyName GetName()
Definition Assembly.cs:294
readonly ResourceManager.ResourceManagerMediator _mediator
static ResourceSet InternalGetResourceSetFromSerializedData(Stream store, string readerTypeName, string resSetTypeName, ResourceManager.ResourceManagerMediator mediator)
bool CanUseDefaultResourceClasses(string readerTypeName, string resSetTypeName)

References System.Resources.ManifestBasedResourceGroveler._mediator, System.Resources.ResourceReader.AllowCustomResourceTypes, System.Resources.ManifestBasedResourceGroveler.CanUseDefaultResourceClasses(), System.Activator.CreateInstance(), System.SR.Format(), System.Reflection.Assembly.GetName(), System.Resources.ResourceManager.HeaderVersionNumber, System.Resources.ManifestBasedResourceGroveler.InternalGetResourceSetFromSerializedData(), System.SR.InvalidOperation_ResMgrBadResSet_Type, System.Resources.ResourceManager.MagicNumber, System.Resources.ResourceManager.MainAssembly, System.SR.NotSupported_ObsoleteResourcesFile, System.offset, System.SR.ResourceManager_ReflectionNotAllowed, System.text, and System.type.

Referenced by System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet().