ResourceManager.GetStream Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает неуправляемый объект потока памяти из указанного ресурса.
Перегрузки
| Имя | Описание |
|---|---|
| GetStream(String) |
Возвращает неуправляемый объект потока памяти из указанного ресурса. |
| GetStream(String, CultureInfo) |
Возвращает неуправляемый объект потока памяти из указанного ресурса с использованием указанного языка и региональных параметров. |
GetStream(String)
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
Внимание
Этот API несовместим с CLS.
Возвращает неуправляемый объект потока памяти из указанного ресурса.
public:
System::IO::UnmanagedMemoryStream ^ GetStream(System::String ^ name);
public System.IO.UnmanagedMemoryStream? GetStream(string name);
public System.IO.UnmanagedMemoryStream GetStream(string name);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream(string name);
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream(string name);
member this.GetStream : string -> System.IO.UnmanagedMemoryStream
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string -> System.IO.UnmanagedMemoryStream
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string -> System.IO.UnmanagedMemoryStream
Public Function GetStream (name As String) As UnmanagedMemoryStream
Параметры
- name
- String
Имя ресурса.
Возвращаемое значение
Неуправляемый объект потока памяти, представляющий ресурс.
- Атрибуты
Исключения
Значение указанного ресурса не MemoryStream является объектом.
name равно null.
Доступный набор ресурсов не найден и не существует ресурсов по умолчанию. Сведения об обработке этого исключения см. в разделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException Exceptions" раздела ResourceManager "Обработка исключений MissingManifestResourceException".
Ресурсы языка и региональных параметров по умолчанию находятся в вспомогательной сборке, которую не удалось найти. Сведения об обработке этого исключения см. в разделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException Exceptions" раздела ResourceManager "Обработка исключений MissingManifestResourceException".
Примеры
В следующем примере метод используется GetStream(String) для получения растрового изображения, используемого в открываемом окне заставки приложения. Следующий исходный код из файла с именем CreateResources.cs (для C#) или CreateResources.vb (для Visual Basic) создает RESX-файл с именем AppResources.resx, содержащий сериализованный образ. В этом случае изображение загружается из файла с именем SplashScreen.jpg; Имя файла можно изменить, чтобы заменить собственный образ.
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Resources;
public class Example
{
public static void Main()
{
Bitmap bmp = new Bitmap(@".\SplashScreen.jpg");
MemoryStream imageStream = new MemoryStream();
bmp.Save(imageStream, ImageFormat.Jpeg);
ResXResourceWriter writer = new ResXResourceWriter("AppResources.resx");
writer.AddResource("SplashScreen", imageStream);
writer.Generate();
writer.Close();
}
}
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Imports System.Resources
Module Example
Public Sub Main()
Dim bmp As New Bitmap(".\SplashScreen.jpg")
Dim imageStream As New MemoryStream()
bmp.Save(imageStream, ImageFormat.Jpeg)
Dim writer As New ResXResourceWriter("AppResources.resx")
writer.AddResource("SplashScreen", imageStream)
writer.Generate()
writer.Close()
End Sub
End Module
Следующий код из файла с именем GetStream.cs (для C#) или GetStream.vb (для Visual Basic) затем извлекает ресурс и отображает изображение в элементе System.Windows.Forms.PictureBox управления.
using System;
using System.Drawing;
using System.IO;
using System.Resources;
using System.Windows.Forms;
public class Example
{
public static void Main()
{
ResourceManager rm = new ResourceManager("AppResources", typeof(Example).Assembly);
Bitmap screen = (Bitmap) Image.FromStream(rm.GetStream("SplashScreen"));
Form frm = new Form();
frm.Size = new Size(300, 300);
PictureBox pic = new PictureBox();
pic.Bounds = frm.RestoreBounds;
pic.BorderStyle = BorderStyle.Fixed3D;
pic.Image = screen;
pic.SizeMode = PictureBoxSizeMode.StretchImage;
frm.Controls.Add(pic);
pic.Anchor = AnchorStyles.Top | AnchorStyles.Bottom |
AnchorStyles.Left | AnchorStyles.Right;
frm.ShowDialog();
}
}
Imports System.Drawing
Imports System.IO
Imports System.Resources
Imports System.Windows.Forms
Module Example
Public Sub Main()
Dim rm As New ResourceManager("AppResources", GetType(Example).Assembly)
Dim screen As Bitmap = CType(Image.FromStream(rm.GetStream("SplashScreen")), Bitmap)
Dim frm As New Form()
frm.Size = new Size(300, 300)
Dim pic As New PictureBox()
pic.Bounds = frm.RestoreBounds
pic.BorderStyle = BorderStyle.Fixed3D
pic.Image = screen
pic.SizeMode = PictureBoxSizeMode.StretchImage
frm.Controls.Add(pic)
pic.Anchor = AnchorStyles.Top Or AnchorStyles.Bottom Or
AnchorStyles.Left Or AnchorStyles.Right
frm.ShowDialog()
End Sub
End Module
Для создания примера C# можно использовать следующий пакетный файл. Для Visual Basic измените csc на vbc, и измените расширение файла исходного кода с .cs на .vb.
csc CreateResources.cs
CreateResources
resgen AppResources.resx
csc GetStream.cs /resource:AppResources.resources
Комментарии
Метод GetStream принимает имя ресурса, хранящегося в качестве MemoryStream объекта, получает значение Object ресурса и возвращает UnmanagedMemoryStream объект. Для этого требуется, чтобы вы работали непосредственно с потоком байтов, который затем преобразуется в объект. Этот метод полезен в первую очередь по соображениям производительности: извлечение ресурса в виде потока байтов вместо явного объекта может повысить производительность.
Возвращаемый ресурс локализован для культуры пользовательского интерфейса текущего потока, что определяется свойством CultureInfo.CurrentUICulture. Если ресурс не локализован для данной культуры, менеджер ресурсов использует правила резервирования для загрузки подходящего ресурса. Если не найден доступный набор локализованных ресурсов, ResourceManager возвращается к ресурсам культуры по умолчанию. Если набор ресурсов для языка и региональных параметров по умолчанию не найден, метод выбрасывает MissingManifestResourceException исключение или, если набор ресурсов, как ожидается, находится в вспомогательной сборке, MissingSatelliteAssemblyException исключение. Если диспетчер ресурсов может загрузить соответствующий набор ресурсов, но не может найти именованный nameресурс, метод возвращается null.
Свойство IgnoreCase определяет, будет ли сравнение name с именами ресурсов нечувствительным к регистру (по умолчанию) или чувствительным к регистру.
Применяется к
GetStream(String, CultureInfo)
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
- Исходный код:
- ResourceManager.cs
Внимание
Этот API несовместим с CLS.
Возвращает неуправляемый объект потока памяти из указанного ресурса с использованием указанного языка и региональных параметров.
public:
System::IO::UnmanagedMemoryStream ^ GetStream(System::String ^ name, System::Globalization::CultureInfo ^ culture);
public System.IO.UnmanagedMemoryStream? GetStream(string name, System.Globalization.CultureInfo? culture);
public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture);
[System.Runtime.InteropServices.ComVisible(false)]
public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture);
member this.GetStream : string * System.Globalization.CultureInfo -> System.IO.UnmanagedMemoryStream
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string * System.Globalization.CultureInfo -> System.IO.UnmanagedMemoryStream
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetStream : string * System.Globalization.CultureInfo -> System.IO.UnmanagedMemoryStream
Public Function GetStream (name As String, culture As CultureInfo) As UnmanagedMemoryStream
Параметры
- name
- String
Имя ресурса.
- culture
- CultureInfo
Язык и региональные параметры, используемые для поиска ресурсов. Если culture это nullтак, используется язык и региональные параметры для текущего потока.
Возвращаемое значение
Неуправляемый объект потока памяти, представляющий ресурс.
- Атрибуты
Исключения
Значение указанного ресурса не MemoryStream является объектом.
name равно null.
Доступный набор ресурсов не найден и не существует ресурсов по умолчанию. Сведения об обработке этого исключения см. в разделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException Exceptions" раздела ResourceManager "Обработка исключений MissingManifestResourceException".
Ресурсы языка и региональных параметров по умолчанию находятся в вспомогательной сборке, которую не удалось найти. Сведения об обработке этого исключения см. в разделе "Обработка исключений MissingManifestResourceException и MissingSatelliteAssemblyException Exceptions" раздела ResourceManager "Обработка исключений MissingManifestResourceException".
Комментарии
Метод GetStream принимает имя ресурса, хранящегося в качестве MemoryStream объекта, получает значение Object ресурса и возвращает UnmanagedMemoryStream объект. Для этого требуется, чтобы вы работали непосредственно с потоком байтов, который затем преобразуется в объект. Этот метод полезен в первую очередь по соображениям производительности: извлечение ресурса в виде потока байтов вместо явного объекта может повысить производительность.
Возвращаемый ресурс локализован для культуры, указанной culture, или для культуры, указанной свойством CultureInfo.CurrentUICulture, если culture равно null. Если ресурс не локализован для данной культуры, менеджер ресурсов использует правила резервирования для загрузки подходящего ресурса. Если не найден доступный набор локализованных ресурсов, ResourceManager возвращается к ресурсам культуры по умолчанию. Если набор ресурсов для языка и региональных параметров по умолчанию не найден, метод выбрасывает MissingManifestResourceException исключение или, если набор ресурсов, как ожидается, находится в вспомогательной сборке, MissingSatelliteAssemblyException исключение. Если диспетчер ресурсов может загрузить соответствующий набор ресурсов, но не может найти именованный nameресурс, метод возвращается null.
Свойство IgnoreCase определяет, будет ли сравнение name с именами ресурсов нечувствительным к регистру (по умолчанию) или чувствительным к регистру.