AssemblyBuilder.AddResourceFile Metódus
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.
Hozzáad egy meglévő erőforrásfájlt ehhez a szerelvényhez.
Túlterhelések
| Name | Description |
|---|---|
| AddResourceFile(String, String) |
Hozzáad egy meglévő erőforrásfájlt ehhez a szerelvényhez. |
| AddResourceFile(String, String, ResourceAttributes) |
Hozzáad egy meglévő erőforrásfájlt ehhez a szerelvényhez. |
AddResourceFile(String, String)
Hozzáad egy meglévő erőforrásfájlt ehhez a szerelvényhez.
public:
void AddResourceFile(System::String ^ name, System::String ^ fileName);
public void AddResourceFile(string name, string fileName);
member this.AddResourceFile : string * string -> unit
Public Sub AddResourceFile (name As String, fileName As String)
Paraméterek
- name
- String
Az erőforrás logikai neve.
- fileName
- String
Az a fizikai fájlnév (.resources fájl), amelyhez a logikai név megfeleltetve van. Ez nem tartalmazhat elérési utat; a fájlnak ugyanabban a könyvtárban kell lennie, mint annak a szerelvénynek, amelyhez hozzá van adva.
Kivételek
name korábban már definiálták.
-vagy-
Van egy másik fájl a szerelvényben.fileName
-vagy-
A hossz name nulla.
-vagy-
A hossz fileName nulla, vagy ha fileName tartalmaz egy elérési utat.
name vagy fileName az null.
A fájl fileName nem található.
A hívó nem rendelkezik a szükséges engedéllyel.
Példák
Az alábbi kódminta bemutatja, hogyan csatolhat egy erőforrásfájlt egy dinamikusan létrehozott szerelvényhez a használatával AddResourceFile.
using System;
using System.IO;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;
class AsmBuilderGetFileDemo
{
private static string myResourceFileName = "MyResource.txt";
private static FileInfo CreateResourceFile()
{
FileInfo f = new FileInfo(myResourceFileName);
StreamWriter sw = f.CreateText();
sw.WriteLine("Hello, world!");
sw.Close();
return f;
}
private static AssemblyBuilder BuildDynAssembly()
{
string myAsmFileName = "MyAsm.dll";
AppDomain myDomain = Thread.GetDomain();
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyDynamicAssembly";
AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
myAsmName,
AssemblyBuilderAccess.RunAndSave);
myAsmBuilder.AddResourceFile("MyResource", myResourceFileName);
// To confirm that the resource file has been added to the manifest,
// we will save the assembly as MyAsm.dll. You can view the manifest
// and confirm the presence of the resource file by running
// "ildasm MyAsm.dll" from the prompt in the directory where you executed
// the compiled code.
myAsmBuilder.Save(myAsmFileName);
return myAsmBuilder;
}
public static void Main()
{
FileStream myResourceFS = null;
CreateResourceFile();
Console.WriteLine("The contents of MyResource.txt, via GetFile:");
AssemblyBuilder myAsm = BuildDynAssembly();
try
{
myResourceFS = myAsm.GetFile(myResourceFileName);
}
catch (NotSupportedException)
{
Console.WriteLine("---");
Console.WriteLine("System.Reflection.Emit.AssemblyBuilder.GetFile\nis not supported " +
"in this SDK build.");
Console.WriteLine("The file data will now be retrieved directly, via a new FileStream.");
Console.WriteLine("---");
myResourceFS = new FileStream(myResourceFileName,
FileMode.Open);
}
StreamReader sr = new StreamReader(myResourceFS, System.Text.Encoding.ASCII);
Console.WriteLine(sr.ReadToEnd());
sr.Close();
}
}
Imports System.IO
Imports System.Threading
Imports System.Reflection
Imports System.Reflection.Emit
_
Class AsmBuilderGetFileDemo
Private Shared myResourceFileName As String = "MyResource.txt"
Private Shared Function CreateResourceFile() As FileInfo
Dim f As New FileInfo(myResourceFileName)
Dim sw As StreamWriter = f.CreateText()
sw.WriteLine("Hello, world!")
sw.Close()
Return f
End Function 'CreateResourceFile
Private Shared Function BuildDynAssembly() As AssemblyBuilder
Dim myAsmFileName As String = "MyAsm.dll"
Dim myDomain As AppDomain = Thread.GetDomain()
Dim myAsmName As New AssemblyName()
myAsmName.Name = "MyDynamicAssembly"
Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly(myAsmName, _
AssemblyBuilderAccess.RunAndSave)
myAsmBuilder.AddResourceFile("MyResource", myResourceFileName)
' To confirm that the resource file has been added to the manifest,
' we will save the assembly as MyAsm.dll. You can view the manifest
' and confirm the presence of the resource file by running
' "ildasm MyAsm.dll" from the prompt in the directory where you executed
' the compiled code.
myAsmBuilder.Save(myAsmFileName)
Return myAsmBuilder
End Function 'BuildDynAssembly
Public Shared Sub Main()
Dim myResourceFS As FileStream = Nothing
CreateResourceFile()
Console.WriteLine("The contents of MyResource.txt, via GetFile:")
Dim myAsm As AssemblyBuilder = BuildDynAssembly()
Try
myResourceFS = myAsm.GetFile(myResourceFileName)
Catch nsException As NotSupportedException
Console.WriteLine("---")
Console.WriteLine("System.Reflection.Emit.AssemblyBuilder.GetFile is not supported " + _
"in this SDK build.")
Console.WriteLine("The file data will now be retrieved directly, via a new FileStream.")
Console.WriteLine("---")
myResourceFS = New FileStream(myResourceFileName, FileMode.Open)
End Try
Dim sr As New StreamReader(myResourceFS, System.Text.Encoding.ASCII)
Console.WriteLine(sr.ReadToEnd())
sr.Close()
End Sub
End Class
Megjegyzések
fileName nem lehet ugyanaz, mint bármely más megőrizhető modul, önálló felügyelt erőforrás vagy önálló jegyzékfájl.
A fájlban lévő felügyelt erőforrások nyilvánosnak minősülnek.
A megadott erőforrásfájlnak abban a könyvtárban kell lennie, amelyben a szerelvény mentésre kerül.
A következőre érvényes:
AddResourceFile(String, String, ResourceAttributes)
Hozzáad egy meglévő erőforrásfájlt ehhez a szerelvényhez.
public:
void AddResourceFile(System::String ^ name, System::String ^ fileName, System::Reflection::ResourceAttributes attribute);
public void AddResourceFile(string name, string fileName, System.Reflection.ResourceAttributes attribute);
member this.AddResourceFile : string * string * System.Reflection.ResourceAttributes -> unit
Public Sub AddResourceFile (name As String, fileName As String, attribute As ResourceAttributes)
Paraméterek
- name
- String
Az erőforrás logikai neve.
- fileName
- String
Az a fizikai fájlnév (.resources fájl), amelyhez a logikai név megfeleltetve van. Ez nem tartalmazhat elérési utat; a fájlnak ugyanabban a könyvtárban kell lennie, mint annak a szerelvénynek, amelyhez hozzá van adva.
- attribute
- ResourceAttributes
Az erőforrásattribútumok.
Kivételek
name korábban már definiálták.
-vagy-
Van egy másik fájl a szerelvényben.fileName
-vagy-
A hosszúság name nulla, vagy ha a hossz fileName nulla.
-vagy-
fileName tartalmaz egy elérési utat.
name vagy fileName az null.
Ha a fájl fileName nem található.
A hívó nem rendelkezik a szükséges engedéllyel.
Példák
Az alábbi kódminta bemutatja, hogyan csatolhat egy erőforrásfájlt egy dinamikusan létrehozott szerelvényhez a használatával AddResourceFile.
using System;
using System.IO;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;
class AsmBuilderGetFileDemo
{
private static string myResourceFileName = "MyResource.txt";
private static FileInfo CreateResourceFile()
{
FileInfo f = new FileInfo(myResourceFileName);
StreamWriter sw = f.CreateText();
sw.WriteLine("Hello, world!");
sw.Close();
return f;
}
private static AssemblyBuilder BuildDynAssembly()
{
string myAsmFileName = "MyAsm.dll";
AppDomain myDomain = Thread.GetDomain();
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyDynamicAssembly";
AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
myAsmName,
AssemblyBuilderAccess.RunAndSave);
myAsmBuilder.AddResourceFile("MyResource", myResourceFileName);
// To confirm that the resource file has been added to the manifest,
// we will save the assembly as MyAsm.dll. You can view the manifest
// and confirm the presence of the resource file by running
// "ildasm MyAsm.dll" from the prompt in the directory where you executed
// the compiled code.
myAsmBuilder.Save(myAsmFileName);
return myAsmBuilder;
}
public static void Main()
{
FileStream myResourceFS = null;
CreateResourceFile();
Console.WriteLine("The contents of MyResource.txt, via GetFile:");
AssemblyBuilder myAsm = BuildDynAssembly();
try
{
myResourceFS = myAsm.GetFile(myResourceFileName);
}
catch (NotSupportedException)
{
Console.WriteLine("---");
Console.WriteLine("System.Reflection.Emit.AssemblyBuilder.GetFile\nis not supported " +
"in this SDK build.");
Console.WriteLine("The file data will now be retrieved directly, via a new FileStream.");
Console.WriteLine("---");
myResourceFS = new FileStream(myResourceFileName,
FileMode.Open);
}
StreamReader sr = new StreamReader(myResourceFS, System.Text.Encoding.ASCII);
Console.WriteLine(sr.ReadToEnd());
sr.Close();
}
}
Imports System.IO
Imports System.Threading
Imports System.Reflection
Imports System.Reflection.Emit
_
Class AsmBuilderGetFileDemo
Private Shared myResourceFileName As String = "MyResource.txt"
Private Shared Function CreateResourceFile() As FileInfo
Dim f As New FileInfo(myResourceFileName)
Dim sw As StreamWriter = f.CreateText()
sw.WriteLine("Hello, world!")
sw.Close()
Return f
End Function 'CreateResourceFile
Private Shared Function BuildDynAssembly() As AssemblyBuilder
Dim myAsmFileName As String = "MyAsm.dll"
Dim myDomain As AppDomain = Thread.GetDomain()
Dim myAsmName As New AssemblyName()
myAsmName.Name = "MyDynamicAssembly"
Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly(myAsmName, _
AssemblyBuilderAccess.RunAndSave)
myAsmBuilder.AddResourceFile("MyResource", myResourceFileName)
' To confirm that the resource file has been added to the manifest,
' we will save the assembly as MyAsm.dll. You can view the manifest
' and confirm the presence of the resource file by running
' "ildasm MyAsm.dll" from the prompt in the directory where you executed
' the compiled code.
myAsmBuilder.Save(myAsmFileName)
Return myAsmBuilder
End Function 'BuildDynAssembly
Public Shared Sub Main()
Dim myResourceFS As FileStream = Nothing
CreateResourceFile()
Console.WriteLine("The contents of MyResource.txt, via GetFile:")
Dim myAsm As AssemblyBuilder = BuildDynAssembly()
Try
myResourceFS = myAsm.GetFile(myResourceFileName)
Catch nsException As NotSupportedException
Console.WriteLine("---")
Console.WriteLine("System.Reflection.Emit.AssemblyBuilder.GetFile is not supported " + _
"in this SDK build.")
Console.WriteLine("The file data will now be retrieved directly, via a new FileStream.")
Console.WriteLine("---")
myResourceFS = New FileStream(myResourceFileName, FileMode.Open)
End Try
Dim sr As New StreamReader(myResourceFS, System.Text.Encoding.ASCII)
Console.WriteLine(sr.ReadToEnd())
sr.Close()
End Sub
End Class
Megjegyzések
fileName nem lehet ugyanaz, mint bármely más megőrizhető modul, önálló felügyelt erőforrás vagy önálló jegyzékfájl.
A felügyelt erőforráshoz attribútumok adhatók meg.
A megadott erőforrásfájlnak abban a könyvtárban kell lennie, amelyben a szerelvény mentésre kerül.