/// <summary> /// Constructor /// </summary> /// <param name="asmName">Assembly name info</param> public AssemblyNameInfo(AssemblyName asmName) { if (asmName == null) { return; } this.hashAlgId = (AssemblyHashAlgorithm)asmName.HashAlgorithm; this.version = asmName.Version ?? new Version(0, 0, 0, 0); this.flags = (AssemblyAttributes)asmName.Flags; this.publicKeyOrToken = (PublicKeyBase)PublicKeyBase.CreatePublicKey(asmName.GetPublicKey()) ?? PublicKeyBase.CreatePublicKeyToken(asmName.GetPublicKeyToken()); this.name = asmName.Name ?? string.Empty; this.culture = asmName.CultureInfo != null && asmName.CultureInfo.Name != null ? asmName.CultureInfo.Name : string.Empty; }
private AssemblyRef ReadAssemblyRef() { var asmRef = new AssemblyRefUser(); if (ownerModule != null) { ownerModule.UpdateRowId(asmRef); } asmRef.Name = ReadAssemblyNameId(); SkipWhite(); if (PeekChar() != ',') { return(asmRef); } ReadChar(); while (true) { SkipWhite(); var c = PeekChar(); if (c == -1 || c == ']') { break; } if (c == ',') { ReadChar(); continue; } var key = ReadId(); SkipWhite(); if (PeekChar() != '=') { continue; } ReadChar(); var value = ReadId(); switch (key.ToUpperInvariant()) { case "VERSION": asmRef.Version = Utils.ParseVersion(value); break; case "CONTENTTYPE": if (value.Equals("WindowsRuntime", StringComparison.OrdinalIgnoreCase)) { asmRef.ContentType = AssemblyAttributes.ContentType_WindowsRuntime; } else { asmRef.ContentType = AssemblyAttributes.ContentType_Default; } break; case "RETARGETABLE": if (value.Equals("Yes", StringComparison.OrdinalIgnoreCase)) { asmRef.IsRetargetable = true; } else { asmRef.IsRetargetable = false; } break; case "PUBLICKEY": if (value.Equals("null", StringComparison.OrdinalIgnoreCase) || value.Equals("neutral", StringComparison.OrdinalIgnoreCase)) { asmRef.PublicKeyOrToken = new PublicKey(); } else { asmRef.PublicKeyOrToken = PublicKeyBase.CreatePublicKey(Utils.ParseBytes(value)); } break; case "PUBLICKEYTOKEN": if (value.Equals("null", StringComparison.OrdinalIgnoreCase) || value.Equals("neutral", StringComparison.OrdinalIgnoreCase)) { asmRef.PublicKeyOrToken = new PublicKeyToken(); } else { asmRef.PublicKeyOrToken = PublicKeyBase.CreatePublicKeyToken(Utils.ParseBytes(value)); } break; case "CULTURE": case "LANGUAGE": if (value.Equals("neutral", StringComparison.OrdinalIgnoreCase)) { asmRef.Culture = UTF8String.Empty; } else { asmRef.Culture = value; } break; } } return(asmRef); }
AssemblyRef ReadAssemblyRef() { var asmRef = new AssemblyRefUser(); if (ownerModule != null) { ownerModule.UpdateRowId(asmRef); } asmRef.Name = ReadId(); SkipWhite(); if (PeekChar() != ',') { return(asmRef); } ReadChar(); while (true) { SkipWhite(); int c = PeekChar(); if (c == -1 || c == ']') { break; } if (c == ',') { ReadChar(); continue; } string key = ReadId(); SkipWhite(); if (PeekChar() != '=') { continue; } ReadChar(); string value = ReadId(); switch (key.ToUpperInvariant()) { case "VERSION": asmRef.Version = Utils.ParseVersion(value); break; case "PUBLICKEY": if (value.Equals("null", StringComparison.OrdinalIgnoreCase)) { asmRef.PublicKeyOrToken = new PublicKey(); } else { asmRef.PublicKeyOrToken = PublicKeyBase.CreatePublicKey(Utils.ParseBytes(value)); } break; case "PUBLICKEYTOKEN": if (value.Equals("null", StringComparison.OrdinalIgnoreCase)) { asmRef.PublicKeyOrToken = new PublicKeyToken(); } else { asmRef.PublicKeyOrToken = PublicKeyBase.CreatePublicKeyToken(Utils.ParseBytes(value)); } break; case "CULTURE": if (value.Equals("neutral", StringComparison.OrdinalIgnoreCase)) { asmRef.Culture = UTF8String.Empty; } else { asmRef.Culture = value; } break; } } return(asmRef); }