PersistedAssemblyBuilder Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Olyan AssemblyBuilder-implementációt biztosít, amely megőrzi a szerelvényt egy lemezen vagy streamen.
public ref class PersistedAssemblyBuilder sealed : System::Reflection::Emit::AssemblyBuilder
public sealed class PersistedAssemblyBuilder : System.Reflection.Emit.AssemblyBuilder
type PersistedAssemblyBuilder = class
inherit AssemblyBuilder
Public NotInheritable Class PersistedAssemblyBuilder
Inherits AssemblyBuilder
- Öröklődés
Megjegyzések
A AssemblyBuilder.Save API-t eredetileg nem a .NET-be (Core) portozták, mert az implementáció nagymértékben függött a Windows-specifikus natív kódtól, amelyet szintén nem portolt. A .NET 9 hozzáadta az PersistedAssemblyBuilder osztályt, amely teljes körűen felügyelt Reflection.Emit implementációt biztosít, amely támogatja a mentést. Ez az implementáció nem függ a meglévő, futtatókörnyezet-specifikus Reflection.Emit implementációtól. Ez azt jelzi, hogy most már két különböző implementáció létezik a .NET-ben: futtatható és perzisztens. A megőrzött összeállítás futtatásához először mentse egy memóriafolyamba vagy egy fájlba, majd töltse be újra.
A PersistedAssemblyBuilderelőtt csak létrehozott szerelvényt futtathat, és nem mentheti. Mivel a szerelvény csak a memóriában volt, nehéz volt hibakeresést végezni. A dinamikus szerelvény fájlokba való mentésének előnyei a következők:
- A létrehozott szerelvényt ellenőrizheti olyan eszközökkel, mint az ILVerify, vagy bonthatja, és manuálisan is megvizsgálhatja azokat olyan eszközökkel, mint az ILSpy.
- A mentett összeállítás közvetlenül betölthető anélkül, hogy ismét le kellene fordítani, ami csökkentheti az alkalmazás indítási idejét.
Egy PersistedAssemblyBuilder-példány létrehozásához használja a PersistedAssemblyBuilder(AssemblyName, Assembly, IEnumerable<CustomAttributeBuilder>) konstruktort. A coreAssembly paraméter az alap futtatókörnyezet-típusok feloldására szolgál, és használható a referencia-szerelvény verziószámozásának feloldásához:
Ha
Reflection.Emitolyan szerelvény létrehozására szolgál, amelyet csak a fordító által futtatott futtatókörnyezeti verzióval megegyező futtatókörnyezeti verzióval hajtanak végre (általában a procben), az alapvető szerelvény egyszerűentypeof(object).Assembly. Az alábbi példa bemutatja, hogyan hozhat létre és menthet egy összeállítást egy streambe, majd hogyan futtathatja azt az aktuális futtatókörnyezeti összeállítás használatával.public static void CreateSaveAndRunAssembly() { PersistedAssemblyBuilder ab = new(new AssemblyName("MyAssembly"), typeof(object).Assembly); ModuleBuilder mob = ab.DefineDynamicModule("MyModule"); TypeBuilder tb = mob.DefineType( "MyType", TypeAttributes.Public | TypeAttributes.Class); MethodBuilder meb = tb.DefineMethod( "SumMethod", MethodAttributes.Public | MethodAttributes.Static, typeof(int), [typeof(int), typeof(int)]); ILGenerator il = meb.GetILGenerator(); il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldarg_1); il.Emit(OpCodes.Add); il.Emit(OpCodes.Ret); tb.CreateType(); using var stream = new MemoryStream(); ab.Save(stream); // Or pass filename to save into a file. stream.Seek(0, SeekOrigin.Begin); Assembly assembly = AssemblyLoadContext.Default.LoadFromStream(stream); MethodInfo method = assembly.GetType("MyType").GetMethod("SumMethod"); Console.WriteLine(method.Invoke(null, [5, 10])); }Ha
Reflection.Emitegy adott TFM-et megcélozó szerelvény létrehozásához használatos, nyissa meg az adott TFM referenciaszerelvényeit azMetadataLoadContexthasználatával, és használja a MetadataLoadContext.CoreAssembly tulajdonság értékétcoreAssembly. Ez az érték lehetővé teszi, hogy a generátor egy .NET-futtatókörnyezeti verzión fusson, és egy másik .NET-futtatókörnyezeti verziót célozzon meg. AzMetadataLoadContextpéldány által visszaadott típusokat kell használnia az alaptípusokra való hivatkozáskor. Példáultypeof(int)helyett keresse meg aSystem.Int32típustMetadataLoadContext.CoreAssemblynév szerint:public static void CreatePersistedAssemblyBuilderCoreAssemblyWithMetadataLoadContext(string refAssembliesPath) { PathAssemblyResolver resolver = new(Directory.GetFiles(refAssembliesPath, "*.dll")); using MetadataLoadContext context = new(resolver); Assembly coreAssembly = context.CoreAssembly; PersistedAssemblyBuilder ab = new(new AssemblyName("MyDynamicAssembly"), coreAssembly); TypeBuilder typeBuilder = ab.DefineDynamicModule("MyModule").DefineType("Test", TypeAttributes.Public); MethodBuilder methodBuilder = typeBuilder.DefineMethod("Method", MethodAttributes.Public, coreAssembly.GetType(typeof(int).FullName), Type.EmptyTypes); // .. add members and save the assembly }
A végrehajtható program belépési pontjának beállítása
Egy végrehajtható fájl belépési pontjának beállításához vagy a szerelvényfájl egyéb beállításainak beállításához meghívhatja a public MetadataBuilder GenerateMetadata(out BlobBuilder ilStream, out BlobBuilder mappedFieldData) metódust, és a feltöltött metaadatok használatával létrehozhatja a szerelvényt a kívánt beállításokkal, például:
public static void SetEntryPoint()
{
PersistedAssemblyBuilder ab = new(new AssemblyName("MyAssembly"), typeof(object).Assembly);
TypeBuilder tb = ab.DefineDynamicModule("MyModule").DefineType("MyType", TypeAttributes.Public | TypeAttributes.Class);
// ...
MethodBuilder entryPoint = tb.DefineMethod("Main", MethodAttributes.HideBySig | MethodAttributes.Public | MethodAttributes.Static);
ILGenerator il2 = entryPoint.GetILGenerator();
// ...
il2.Emit(OpCodes.Ret);
tb.CreateType();
MetadataBuilder metadataBuilder = ab.GenerateMetadata(out BlobBuilder ilStream, out BlobBuilder fieldData);
ManagedPEBuilder peBuilder = new(
header: PEHeaderBuilder.CreateExecutableHeader(),
metadataRootBuilder: new MetadataRootBuilder(metadataBuilder),
ilStream: ilStream,
mappedFieldData: fieldData,
entryPoint: MetadataTokens.MethodDefinitionHandle(entryPoint.MetadataToken));
BlobBuilder peBlob = new();
peBuilder.Serialize(peBlob);
// Create the executable:
using FileStream fileStream = new("MyAssembly.exe", FileMode.Create, FileAccess.Write);
peBlob.WriteContentTo(fileStream);
}
Szimbólumok kibocsátása és PDB létrehozása
A szimbólumok metaadatai a pdbBuilder kimeneti paraméterbe kerülnek, amikor meghívja a GenerateMetadata(BlobBuilder, BlobBuilder) metódust egy PersistedAssemblyBuilder-példányon. Szerelvény létrehozása hordozható PDB-vel:
- Hozzon létre ISymbolDocumentWriter példányt a ModuleBuilder.DefineDocument(String, Guid, Guid, Guid) metódussal. A metódus IL-jének kibocsátása közben a megfelelő szimbólumadatokat is kibocsátja.
- Hozzon létre egy PortablePdbBuilder példányt a
pdbBuildermetódus által létrehozott GenerateMetadata(BlobBuilder, BlobBuilder)-példány használatával. - Szerializálja a
PortablePdbBuilder-t Blob-é, és írja aBlob-t egy PDB-fájlstreambe (csak akkor, ha önálló PDB-t hoz létre). - Hozzon létre egy DebugDirectoryBuilder-példányt, és vegyen fel egy DebugDirectoryBuilder.AddCodeViewEntry (önálló PDB) vagy DebugDirectoryBuilder.AddEmbeddedPortablePdbEntry.
- A
debugDirectoryBuilder-példány létrehozásakor állítsa be az opcionális PEBuilder argumentumot.
Az alábbi példa bemutatja, hogyan bocsáthat ki szimbólumadatokat, és hogyan hozhat létre PDB-fájlt.
static void GenerateAssemblyWithPdb()
{
PersistedAssemblyBuilder ab = new PersistedAssemblyBuilder(new AssemblyName("MyAssembly"), typeof(object).Assembly);
ModuleBuilder mb = ab.DefineDynamicModule("MyModule");
TypeBuilder tb = mb.DefineType("MyType", TypeAttributes.Public | TypeAttributes.Class);
MethodBuilder mb1 = tb.DefineMethod("SumMethod", MethodAttributes.Public | MethodAttributes.Static, typeof(int), [typeof(int), typeof(int)]);
ISymbolDocumentWriter srcDoc = mb.DefineDocument("MySourceFile.cs", SymLanguageType.CSharp);
ILGenerator il = mb1.GetILGenerator();
LocalBuilder local = il.DeclareLocal(typeof(int));
local.SetLocalSymInfo("myLocal");
il.MarkSequencePoint(srcDoc, 7, 0, 7, 11);
...
il.Emit(OpCodes.Ret);
MethodBuilder entryPoint = tb.DefineMethod("Main", MethodAttributes.HideBySig | MethodAttributes.Public | MethodAttributes.Static);
ILGenerator il2 = entryPoint.GetILGenerator();
il2.BeginScope();
...
il2.EndScope();
...
tb.CreateType();
MetadataBuilder metadataBuilder = ab.GenerateMetadata(out BlobBuilder ilStream, out _, out MetadataBuilder pdbBuilder);
MethodDefinitionHandle entryPointHandle = MetadataTokens.MethodDefinitionHandle(entryPoint.MetadataToken);
DebugDirectoryBuilder debugDirectoryBuilder = GeneratePdb(pdbBuilder, metadataBuilder.GetRowCounts(), entryPointHandle);
ManagedPEBuilder peBuilder = new ManagedPEBuilder(
header: new PEHeaderBuilder(imageCharacteristics: Characteristics.ExecutableImage, subsystem: Subsystem.WindowsCui),
metadataRootBuilder: new MetadataRootBuilder(metadataBuilder),
ilStream: ilStream,
debugDirectoryBuilder: debugDirectoryBuilder,
entryPoint: entryPointHandle);
BlobBuilder peBlob = new BlobBuilder();
peBuilder.Serialize(peBlob);
using var fileStream = new FileStream("MyAssembly.exe", FileMode.Create, FileAccess.Write);
peBlob.WriteContentTo(fileStream);
}
static DebugDirectoryBuilder GeneratePdb(MetadataBuilder pdbBuilder, ImmutableArray<int> rowCounts, MethodDefinitionHandle entryPointHandle)
{
BlobBuilder portablePdbBlob = new BlobBuilder();
PortablePdbBuilder portablePdbBuilder = new PortablePdbBuilder(pdbBuilder, rowCounts, entryPointHandle);
BlobContentId pdbContentId = portablePdbBuilder.Serialize(portablePdbBlob);
// In case saving PDB to a file
using FileStream fileStream = new FileStream("MyAssemblyEmbeddedSource.pdb", FileMode.Create, FileAccess.Write);
portablePdbBlob.WriteContentTo(fileStream);
DebugDirectoryBuilder debugDirectoryBuilder = new DebugDirectoryBuilder();
debugDirectoryBuilder.AddCodeViewEntry("MyAssemblyEmbeddedSource.pdb", pdbContentId, portablePdbBuilder.FormatVersion);
// In case embedded in PE:
// debugDirectoryBuilder.AddEmbeddedPortablePdbEntry(portablePdbBlob, portablePdbBuilder.FormatVersion);
return debugDirectoryBuilder;
}
Emellett hozzáadhatja a forrásbeágyazási és forrásindexelési fejlett PDB-információkat, ha meghívja a CustomDebugInformation metódust a MetadataBuilder.AddCustomDebugInformation(EntityHandle, GuidHandle, BlobHandle) példányból a pdbBuilder hozzáadásához.
private static void EmbedSource(MetadataBuilder pdbBuilder)
{
byte[] sourceBytes = File.ReadAllBytes("MySourceFile2.cs");
BlobBuilder sourceBlob = new BlobBuilder();
sourceBlob.WriteBytes(sourceBytes);
pdbBuilder.AddCustomDebugInformation(MetadataTokens.DocumentHandle(1),
pdbBuilder.GetOrAddGuid(new Guid("0E8A571B-6926-466E-B4AD-8AB04611F5FE")), pdbBuilder.GetOrAddBlob(sourceBlob));
}
Erőforrások hozzáadása a PersistedAssemblyBuilder használatával
Hívja a MetadataBuilder.AddManifestResource(ManifestResourceAttributes, StringHandle, EntityHandle, UInt32) számot, hogy annyi erőforrást adjon hozzá, amennyi szükséges. Az adatfolyamokat össze kell fűzni egy BlobBuilder-vá, amit a ManagedPEBuilder argumentumba ad meg. Az alábbi példa bemutatja, hogyan hozhat létre erőforrásokat, és hogyan csatolhatja őket a létrehozott szerelvényhez.
public static void SetResource()
{
PersistedAssemblyBuilder ab = new(new AssemblyName("MyAssembly"), typeof(object).Assembly);
ab.DefineDynamicModule("MyModule");
MetadataBuilder metadata = ab.GenerateMetadata(out BlobBuilder ilStream, out _);
using MemoryStream stream = new();
ResourceWriter myResourceWriter = new(stream);
myResourceWriter.AddResource("AddResource 1", "First added resource");
myResourceWriter.AddResource("AddResource 2", "Second added resource");
myResourceWriter.AddResource("AddResource 3", "Third added resource");
myResourceWriter.Close();
byte[] data = stream.ToArray();
BlobBuilder resourceBlob = new();
resourceBlob.WriteInt32(data.Length);
resourceBlob.WriteBytes(data);
metadata.AddManifestResource(
ManifestResourceAttributes.Public,
metadata.GetOrAddString("MyResource.resources"),
implementation: default,
offset: 0);
ManagedPEBuilder peBuilder = new(
header: PEHeaderBuilder.CreateLibraryHeader(),
metadataRootBuilder: new MetadataRootBuilder(metadata),
ilStream: ilStream,
managedResources: resourceBlob);
BlobBuilder blob = new();
peBuilder.Serialize(blob);
// Create the assembly:
using FileStream fileStream = new("MyAssemblyWithResource.dll", FileMode.Create, FileAccess.Write);
blob.WriteContentTo(fileStream);
}
Az alábbi példa bemutatja, hogyan olvashatja be az erőforrásokat a létrehozott szerelvényből.
public static void ReadResource()
{
Assembly readAssembly = Assembly.LoadFile(Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"MyAssemblyWithResource.dll"));
// Use ResourceManager.GetString() to read the resources.
ResourceManager rm = new("MyResource", readAssembly);
Console.WriteLine("Using ResourceManager.GetString():");
Console.WriteLine($"{rm.GetString("AddResource 1", CultureInfo.InvariantCulture)}");
Console.WriteLine($"{rm.GetString("AddResource 2", CultureInfo.InvariantCulture)}");
Console.WriteLine($"{rm.GetString("AddResource 3", CultureInfo.InvariantCulture)}");
// Use ResourceSet to enumerate the resources.
Console.WriteLine();
Console.WriteLine("Using ResourceSet:");
ResourceSet resourceSet = rm.GetResourceSet(CultureInfo.InvariantCulture, createIfNotExists: true, tryParents: false);
foreach (DictionaryEntry entry in resourceSet)
{
Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}");
}
// Use ResourceReader to enumerate the resources.
Console.WriteLine();
Console.WriteLine("Using ResourceReader:");
using Stream stream = readAssembly.GetManifestResourceStream("MyResource.resources")!;
using ResourceReader reader = new(stream);
foreach (DictionaryEntry entry in reader)
{
Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}");
}
}
Note
Az összes tag metaadat-jogkivonatai a Save műveletben lesznek feltöltve. Mentés előtt ne használja a létrehozott típus és tagjai jogkivonatait, mert alapértelmezett értékekkel rendelkeznek, vagy kivételeket vetnek ki. Biztonságos tokent használni a hivatkozott, nem generált típusok esetén.
Bizonyos API-k, amelyek nem fontosak az assembly kibocsátásához, nincsenek implementálva; például a GetCustomAttributes(). A futtatókörnyezet implementálásával a típus létrehozása után használhatta ezeket az API-kat. A megőrzött AssemblyBuilder-ért valamilyen NotSupportedException-et vagy NotImplementedException-t dobnak. Ha olyan forgatókönyve van, amely megköveteli az API-k használatát, küldjön be egy hibajelentést a dotnet/runtime tárházban.
A szerelvényfájlok létrehozásának alternatív módjáért lásd a(z) MetadataBuilder.
Warning
PersistedAssemblyBuilder Az API-knak megbízható bemenettel rendelkező, megbízható környezetre van szükségük, hasonlóan más technológiákhoz, például fordítókhoz. A generált IL-hez az alapszintű ellenőrzésen kívül nincsenek olyan korlátozások, amelyeket a AssemblyBuilder rendszer tartalmazhat. Ez magában foglalja a tagok nevének, számának és a kapcsolódó metaadatok, például az egyéni attribútumok érvényesítését.
Konstruktorok
| Name | Description |
|---|---|
| PersistedAssemblyBuilder(AssemblyName, Assembly, IEnumerable<CustomAttributeBuilder>) |
Létrehoz egy PersistedAssemblyBuilder fájlt vagy streambe menthető példányt. |
Tulajdonságok
| Name | Description |
|---|---|
| CodeBase |
Elavult.
Lekéri a szerelvény eredetileg megadott helyét (például egy AssemblyName objektumban). (Öröklődés forrása AssemblyBuilder) |
| CustomAttributes |
Lekéri a szerelvény egyéni attribútumait tartalmazó gyűjteményt. (Öröklődés forrása Assembly) |
| EntryPoint |
A szerelvény belépési pontját adja vissza. (Öröklődés forrása AssemblyBuilder) |
| EscapedCodeBase |
Elavult.
Elavult.
Lekéri a kódbázist képviselő URI-t, beleértve a feloldó karaktereket is. (Öröklődés forrása Assembly) |
| ExportedTypes |
Lekéri az ebben a szerelvényben definiált nyilvános típusok gyűjteményét, amelyek a szerelvényen kívül láthatók. (Öröklődés forrása Assembly) |
| FullName |
Lekéri az aktuális dinamikus szerelvény megjelenítendő nevét. |
| HostContext |
Lekéri azt a gazdagépkörnyezetet, amelyben a dinamikus szerelvény létrejön. (Öröklődés forrása AssemblyBuilder) |
| IsCollectible |
Olyan értéket kap, amely jelzi, hogy a dinamikus szerelvény egy gyűjthető helyen van-e tárolva AssemblyLoadContext. (Öröklődés forrása AssemblyBuilder) |
| IsDynamic |
Olyan értéket kap, amely azt jelzi, hogy az aktuális szerelvény egy dinamikus szerelvény. (Öröklődés forrása AssemblyBuilder) |
| IsFullyTrusted |
Olyan értéket kap, amely jelzi, hogy az aktuális szerelvény teljes megbízhatósággal van-e betöltve. (Öröklődés forrása Assembly) |
| Location |
Lekéri a jegyzékfájlt tartalmazó betöltött fájl helyét kódbázis formátumban, ha az nincs árnyékmásolva. (Öröklődés forrása AssemblyBuilder) |
| ManifestModule |
Lekéri az aktuális PersistedAssemblyBuilder modult, amely tartalmazza a szerelvényjegyzéket. |
| ReflectionOnly |
Lekéri az értéket, amely jelzi, hogy a dinamikus szerelvény csak tükröződési környezetben van-e. (Öröklődés forrása AssemblyBuilder) |
Metódusok
| Name | Description |
|---|---|
| CreateInstance(String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Megkeresi a megadott típust ebből a szerelvényből, és létrehozza annak egy példányát a rendszeraktivátor használatával, a kis- és nagybetűk megkülönböztetésével, valamint a megadott kultúrával, argumentumokkal, kötési és aktiválási attribútumokkal. (Öröklődés forrása Assembly) |
| CreateInstance(String, Boolean) |
Megkeresi a megadott típust ebből a szerelvényből, és létrehozza annak egy példányát a rendszeraktivátor használatával, a kis- és nagybetűket nem kötelező kereséssel. (Öröklődés forrása Assembly) |
| CreateInstance(String) |
Megkeresi a megadott típust ebből a szerelvényből, és létrehoz egy példányt a rendszeraktivátor használatával, a kis- és nagybetűket megkülönböztető kereséssel. (Öröklődés forrása Assembly) |
| DefineDynamicModule(String) |
Egy elnevezett átmeneti dinamikus modult határoz meg ebben a szerelvényben. (Öröklődés forrása AssemblyBuilder) |
| DefineDynamicModuleCore(String) |
Ha egy származtatott osztályban felül van bírálva, egy dinamikus modult határoz meg ebben a szerelvényben. (Öröklődés forrása AssemblyBuilder) |
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e a megadott objektummal. (Öröklődés forrása AssemblyBuilder) |
| GenerateMetadata(BlobBuilder, BlobBuilder, MetadataBuilder) |
Létrehozza a metaadatokat a PersistedAssemblyBuilder. |
| GenerateMetadata(BlobBuilder, BlobBuilder) |
Létrehozza a metaadatokat a PersistedAssemblyBuilder. |
| GetCustomAttributes(Boolean) |
Az aktuálisra AssemblyBuilderalkalmazott összes egyéni attribútumot adja vissza. (Öröklődés forrása AssemblyBuilder) |
| GetCustomAttributes(Type, Boolean) |
Az aktuálisra AssemblyBuilderalkalmazott összes egyéni attribútumot adja vissza, amely egy adott attribútumtípusból származik. (Öröklődés forrása AssemblyBuilder) |
| GetCustomAttributesData() |
CustomAttributeData Az aktuálisra AssemblyBuilderalkalmazott attribútumokkal kapcsolatos információkat tartalmazó objektumokat ad vissza. (Öröklődés forrása AssemblyBuilder) |
| GetDynamicModule(String) |
A megadott névvel rendelkező dinamikus modult adja vissza. (Öröklődés forrása AssemblyBuilder) |
| GetDynamicModuleCore(String) |
Ha egy származtatott osztályban felül van bírálva, a megadott névvel adja vissza a dinamikus modult. (Öröklődés forrása AssemblyBuilder) |
| GetExportedTypes() |
Lekéri a szerelvényben definiált exportált típusokat. (Öröklődés forrása AssemblyBuilder) |
| GetFile(String) |
FileStream Lekéri a megadott fájlt a szerelvény jegyzékfájljának fájltáblájában. (Öröklődés forrása AssemblyBuilder) |
| GetFiles() |
Lekéri a fájlokat egy szerelvényjegyzék fájltáblájában. (Öröklődés forrása Assembly) |
| GetFiles(Boolean) |
Lekéri a fájlokat egy szerelvényjegyzék fájltáblájában, megadva, hogy az erőforrásmodulokat is tartalmazza-e. (Öröklődés forrása AssemblyBuilder) |
| GetForwardedTypes() |
Olyan AssemblyBuilder-implementációt biztosít, amely megőrzi a szerelvényt egy lemezen vagy streamen. (Öröklődés forrása Assembly) |
| GetHashCode() |
A példány kivonatkódját adja vissza. (Öröklődés forrása AssemblyBuilder) |
| GetLoadedModules() |
Lekéri a szerelvény részét képező összes betöltött modult. (Öröklődés forrása Assembly) |
| GetLoadedModules(Boolean) |
A szerelvény részét képező összes betöltött modult visszaadja, és opcionálisan erőforrásmodulokat is tartalmaz. (Öröklődés forrása AssemblyBuilder) |
| GetManifestResourceInfo(String) |
Az adott erőforrás megőrzésének módját adja vissza. (Öröklődés forrása AssemblyBuilder) |
| GetManifestResourceNames() |
Betölti a megadott jegyzékerőforrást ebből a szerelvényből. (Öröklődés forrása AssemblyBuilder) |
| GetManifestResourceStream(String) |
Betölti a megadott jegyzékerőforrást ebből a szerelvényből. (Öröklődés forrása AssemblyBuilder) |
| GetManifestResourceStream(Type, String) |
Betölti a megadott jegyzékerőforrást, amely a megadott típus névtere szerint van meghatározva ebből a szerelvényből. (Öröklődés forrása AssemblyBuilder) |
| GetModule(String) |
Lekéri a megadott modult ebben a szerelvényben. (Öröklődés forrása AssemblyBuilder) |
| GetModules() |
Lekéri a szerelvény részét képező összes modult. (Öröklődés forrása Assembly) |
| GetModules(Boolean) |
Lekéri a szerelvény részét képező összes modult, és opcionálisan erőforrásmodulokat is tartalmaz. (Öröklődés forrása AssemblyBuilder) |
| GetName() |
Kap egy ilyen AssemblyName szerelvényt. (Öröklődés forrása Assembly) |
| GetName(Boolean) |
Lekéri az AssemblyName aktuális dinamikus szerelvény létrehozásakor megadott értéket. |
| GetObjectData(SerializationInfo, StreamingContext) |
Elavult.
Lekéri a szerializálási adatokat a szerelvény újbóli létrehozásához szükséges összes adattal. (Öröklődés forrása Assembly) |
| GetReferencedAssemblies() |
Lekéri az AssemblyName ebben AssemblyBuildera szakaszban hivatkozott szerelvények objektumainak hiányos listáját. (Öröklődés forrása AssemblyBuilder) |
| GetSatelliteAssembly(CultureInfo, Version) |
Lekéri a műholdas szerelvény megadott verzióját a megadott kultúrához. (Öröklődés forrása AssemblyBuilder) |
| GetSatelliteAssembly(CultureInfo) |
Lekéri a megadott kultúrához tartozó műholdas szerelvényt. (Öröklődés forrása AssemblyBuilder) |
| GetType(String, Boolean, Boolean) |
Lekéri a megadott típust az aktuálisban AssemblyBuilderdefiniált és létrehozott típusok közül. (Öröklődés forrása AssemblyBuilder) |
| GetType(String, Boolean) |
Lekéri a Type megadott nevű objektumot a szerelvénypéldányban, és opcionálisan kivételt ad, ha a típus nem található. (Öröklődés forrása Assembly) |
| GetType(String) |
Lekéri az Type objektumot a megadott névvel a szerelvénypéldányban. (Öröklődés forrása Assembly) |
| GetTypes() |
Lekéri a szerelvényben definiált összes típust. (Öröklődés forrása Assembly) |
| IsDefined(Type, Boolean) |
Olyan értéket ad vissza, amely jelzi, hogy a megadott attribútumtípus egy vagy több példánya van-e alkalmazva erre a tagra. (Öröklődés forrása AssemblyBuilder) |
| LoadModule(String, Byte[], Byte[]) |
Betölti a modult a szerelvényen belül egy közös objektumfájl-formátummal (COFF)-alapú képpel, amely egy kibocsátott modult vagy egy erőforrásfájlt tartalmaz. A modul szimbólumait jelképező nyers bájtok is betöltésre kerülnek. (Öröklődés forrása Assembly) |
| LoadModule(String, Byte[]) |
Betölti a modult a szerelvényen belül egy közös objektumfájl-formátummal (COFF)-alapú képpel, amely egy kibocsátott modult vagy egy erőforrásfájlt tartalmaz. (Öröklődés forrása Assembly) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| Save(Stream) |
Szerializálja a szerelvényt a megadott streamre. |
| Save(String) |
Menti a szerelvényt a lemezre. |
| SetCustomAttribute(ConstructorInfo, Byte[]) |
Egyéni attribútum beállítása ezen a szerelvényen egy megadott egyéni attribútumblob használatával. (Öröklődés forrása AssemblyBuilder) |
| SetCustomAttribute(CustomAttributeBuilder) |
Egyéni attribútum beállítása ezen a szerelvényen egy egyéni attribútumszerkesztővel. (Öröklődés forrása AssemblyBuilder) |
| SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
Ha felül van bírálva egy származtatott osztályban, beállít egy egyéni attribútumot ezen a szerelvényen. (Öröklődés forrása AssemblyBuilder) |
| ToString() |
A szerelvény teljes nevét adja vissza, más néven a megjelenítendő nevet. (Öröklődés forrása Assembly) |
esemény
| Name | Description |
|---|---|
| ModuleResolve |
Akkor fordul elő, ha a közös nyelvi futtatókörnyezeti osztálybetöltő normál módon nem tudja feloldani a szerelvény belső moduljára mutató hivatkozást. (Öröklődés forrása Assembly) |
Bővítő metódusok
| Name | Description |
|---|---|
| GetCustomAttribute(Assembly, Type) |
Lekéri a megadott típusú egyéni attribútumot, amelyet egy adott szerelvényre alkalmaz. |
| GetCustomAttribute<T>(Assembly) |
Lekéri a megadott típusú egyéni attribútumot, amelyet egy adott szerelvényre alkalmaz. |
| GetCustomAttributes(Assembly, Type) |
Egy megadott típusú egyéni attribútumok gyűjteményét kéri le, amelyek egy adott szerelvényre lesznek alkalmazva. |
| GetCustomAttributes(Assembly) |
Egy adott szerelvényre alkalmazott egyéni attribútumok gyűjteményét kéri le. |
| GetCustomAttributes<T>(Assembly) |
Egy megadott típusú egyéni attribútumok gyűjteményét kéri le, amelyek egy adott szerelvényre lesznek alkalmazva. |
| GetExportedTypes(Assembly) |
Olyan AssemblyBuilder-implementációt biztosít, amely megőrzi a szerelvényt egy lemezen vagy streamen. |
| GetModules(Assembly) |
Olyan AssemblyBuilder-implementációt biztosít, amely megőrzi a szerelvényt egy lemezen vagy streamen. |
| GetTypes(Assembly) |
Olyan AssemblyBuilder-implementációt biztosít, amely megőrzi a szerelvényt egy lemezen vagy streamen. |
| IsDefined(Assembly, Type) |
Azt jelzi, hogy a megadott típusú egyéni attribútumok alkalmazhatók-e egy adott szerelvényre. |
| TryGetRawMetadata(Assembly, Byte*, Int32) |
Lekéri a szerelvény metaadatszakaszát a következővel MetadataReadervaló használatra: . |