|
|
|
@ -370,17 +370,23 @@ namespace ICSharpCode.Decompiler.Disassembler
@@ -370,17 +370,23 @@ namespace ICSharpCode.Decompiler.Disassembler
|
|
|
|
|
output.Write(secdecl.Action.ToString()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
var blob = metadata.GetBlobReader(secdecl.PermissionSet); |
|
|
|
|
if (AssemblyResolver == null) { |
|
|
|
|
output.Write(" = "); |
|
|
|
|
WriteBlob(secdecl.PermissionSet, metadata); |
|
|
|
|
WriteBlob(blob); |
|
|
|
|
output.WriteLine(); |
|
|
|
|
} else if ((char)blob.ReadByte() != '.') { |
|
|
|
|
blob.Reset(); |
|
|
|
|
output.WriteLine(); |
|
|
|
|
output.Indent(); |
|
|
|
|
output.Write("bytearray"); |
|
|
|
|
WriteBlob(blob); |
|
|
|
|
output.WriteLine(); |
|
|
|
|
output.Unindent(); |
|
|
|
|
} else { |
|
|
|
|
output.WriteLine(" = {"); |
|
|
|
|
output.Indent(); |
|
|
|
|
var blob = metadata.GetBlobReader(secdecl.PermissionSet); |
|
|
|
|
if ((char)blob.ReadByte() != '.') { |
|
|
|
|
blob.Reset(); |
|
|
|
|
WriteXmlSecurityDeclaration(blob.ReadUTF8(blob.RemainingBytes)); |
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
string currentAssemblyName = null; |
|
|
|
|
string currentFullAssemblyName = null; |
|
|
|
|
if (metadata.IsAssembly) { |
|
|
|
@ -421,19 +427,12 @@ namespace ICSharpCode.Decompiler.Disassembler
@@ -421,19 +427,12 @@ namespace ICSharpCode.Decompiler.Disassembler
|
|
|
|
|
output.Write(','); |
|
|
|
|
output.WriteLine(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
output.Unindent(); |
|
|
|
|
output.WriteLine("}"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void WriteXmlSecurityDeclaration(string xml) |
|
|
|
|
{ |
|
|
|
|
output.Write("property string XML = "); |
|
|
|
|
output.Write("string('{0}')", DisassemblerHelpers.EscapeString(xml).Replace("'", "\'")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
enum TypeKind |
|
|
|
|
{ |
|
|
|
|
Primitive, |
|
|
|
@ -1373,6 +1372,11 @@ namespace ICSharpCode.Decompiler.Disassembler
@@ -1373,6 +1372,11 @@ namespace ICSharpCode.Decompiler.Disassembler
|
|
|
|
|
void WriteBlob(BlobHandle blob, MetadataReader metadata) |
|
|
|
|
{ |
|
|
|
|
var reader = metadata.GetBlobReader(blob); |
|
|
|
|
WriteBlob(reader); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void WriteBlob(BlobReader reader) |
|
|
|
|
{ |
|
|
|
|
output.Write("("); |
|
|
|
|
output.Indent(); |
|
|
|
|
|
|
|
|
|