diff options
-rw-r--r-- | Mono.Cecil/AssemblyNameReference.cs | 5 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/AssemblyTests.cs | 17 | ||||
-rw-r--r-- | Test/Resources/assemblies/RetargetableExample.dll | bin | 0 -> 3072 bytes |
3 files changed, 22 insertions, 0 deletions
diff --git a/Mono.Cecil/AssemblyNameReference.cs b/Mono.Cecil/AssemblyNameReference.cs index 78b0337..fbbe67a 100644 --- a/Mono.Cecil/AssemblyNameReference.cs +++ b/Mono.Cecil/AssemblyNameReference.cs @@ -162,6 +162,11 @@ namespace Mono.Cecil { } else builder.Append ("null"); + if (IsRetargetable) { + builder.Append (sep); + builder.Append ("Retargetable=Yes"); + } + return full_name = builder.ToString (); } } diff --git a/Test/Mono.Cecil.Tests/AssemblyTests.cs b/Test/Mono.Cecil.Tests/AssemblyTests.cs index c7e5ef6..4f849f9 100644 --- a/Test/Mono.Cecil.Tests/AssemblyTests.cs +++ b/Test/Mono.Cecil.Tests/AssemblyTests.cs @@ -55,5 +55,22 @@ namespace Mono.Cecil.Tests { name = new AssemblyNameReference ("Foo", new Version (0, 0, 0)); Assert.AreEqual ("Foo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", name.FullName); } + + [Test] + public void Retargetable () + { + TestModule ("RetargetableExample.dll", module => { + var type = module.Types [1]; + //var property = type.Properties [0]; + //var attribute = property.CustomAttributes [0]; + + //var argumentType = ((CustomAttributeArgument) attribute.ConstructorArguments[0].Value).Type; + //var reference = (AssemblyNameReference) argumentType.Scope; + + //Assert.AreEqual ( + // "System.Data, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes", + // reference.FullName); + }); + } } } diff --git a/Test/Resources/assemblies/RetargetableExample.dll b/Test/Resources/assemblies/RetargetableExample.dll Binary files differnew file mode 100644 index 0000000..a33acb4 --- /dev/null +++ b/Test/Resources/assemblies/RetargetableExample.dll |