diff options
author | jbevain <jbevain@gmail.com> | 2010-04-12 16:33:40 +0400 |
---|---|---|
committer | jbevain <jbevain@gmail.com> | 2010-04-12 16:33:40 +0400 |
commit | 35ff72b1f89861dafb0fdb78178b2f95b82e6a3b (patch) | |
tree | 7e55f11d6b01ef30b340c04c3d45f4a544f67d7a | |
parent | 0e77b07bfd101221475c6ae4d268c284106776e7 (diff) |
fix completely SILVERLIGHT compilation0.9
-rw-r--r-- | Mono.Cecil-SL.csproj | 6 | ||||
-rw-r--r-- | Mono.Cecil/Import.cs | 14 |
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)) |