Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbevain <jbevain@gmail.com>2010-04-12 16:33:40 +0400
committerjbevain <jbevain@gmail.com>2010-04-12 16:33:40 +0400
commit35ff72b1f89861dafb0fdb78178b2f95b82e6a3b (patch)
tree7e55f11d6b01ef30b340c04c3d45f4a544f67d7a
parent0e77b07bfd101221475c6ae4d268c284106776e7 (diff)
fix completely SILVERLIGHT compilation0.9
-rw-r--r--Mono.Cecil-SL.csproj6
-rw-r--r--Mono.Cecil/Import.cs14
2 files changed, 16 insertions, 4 deletions
diff --git a/Mono.Cecil-SL.csproj b/Mono.Cecil-SL.csproj
index 15a34b9..881db3c 100644
--- a/Mono.Cecil-SL.csproj
+++ b/Mono.Cecil-SL.csproj
@@ -163,10 +163,10 @@
<Compile Include="Mono.Collections.Generic\Collection.cs" />
<Compile Include="Mono.Security.Cryptography\CryptoConvert.cs" />
<Compile Include="Mono.Security.Cryptography\CryptoService.cs" />
+ <Compile Include="Mono\Actions.cs" />
+ <Compile Include="Mono\Empty.cs" />
+ <Compile Include="Mono\Funcs.cs" />
<Compile Include="System.Runtime.CompilerServices\ExtensionAttribute.cs" />
- <Compile Include="System\Actions.cs" />
- <Compile Include="System\Empty.cs" />
- <Compile Include="System\Funcs.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="NOTES.txt" />
diff --git a/Mono.Cecil/Import.cs b/Mono.Cecil/Import.cs
index 1742fb5..5686f6b 100644
--- a/Mono.Cecil/Import.cs
+++ b/Mono.Cecil/Import.cs
@@ -206,7 +206,7 @@ namespace Mono.Cecil {
var declaring_type = ImportType (field.DeclaringType, null);
if (IsGenericInstance (field.DeclaringType))
- field = field.Module.ResolveField (field.MetadataToken);
+ field = ResolveFieldDefinition (field);
return new FieldReference {
Name = field.Name,
@@ -215,6 +215,18 @@ namespace Mono.Cecil {
};
}
+ static SR.FieldInfo ResolveFieldDefinition (SR.FieldInfo field)
+ {
+#if !SILVERLIGHT
+ return field.Module.ResolveField (field.MetadataToken);
+#else
+ return field.DeclaringType.GetGenericTypeDefinition ().GetField (field.Name,
+ SR.BindingFlags.Public
+ | SR.BindingFlags.NonPublic
+ | (field.IsStatic ? SR.BindingFlags.Static : SR.BindingFlags.Instance));
+#endif
+ }
+
public MethodReference ImportMethod (SR.MethodBase method)
{
if (IsMethodSpecification (method))