ResourceManager.GetStream 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
관리되지 않는 메모리 스트림 개체에서 지정된 리소스를 반환합니다.
오버로드
GetStream(String) |
관리되지 않는 메모리 스트림 개체에서 지정된 리소스를 반환합니다. |
GetStream(String, CultureInfo) |
지정된 문화권을 사용하여 지정된 리소스에서 관리되지 않은 메모리 스트림 개체를 반환합니다. |
GetStream(String)
- Source:
- ResourceManager.cs
- Source:
- ResourceManager.cs
- Source:
- 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
인 경우
사용할 수 있는 리소스 집합을 찾을 수 없으며 기본 리소스가 없는 경우 이 예외를 처리하는 방법에 대한 자세한 내용은 ResourceManager 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 단원을 참조하십시오.
기본 문화권의 리소스가 찾을 수 없는 위성 어셈블리에 있을 경우 이 예외를 처리하는 방법에 대한 자세한 내용은 ResourceManager 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 단원을 참조하십시오.
예제
다음 예제에서는 GetStream(String) 메서드를 사용하여 앱의 열기 시작 창에 사용되는 비트맵을 검색합니다. CreateResources.cs(C#의 경우) 또는 CreateResources.vb(Visual Basic의 경우)라는 파일의 다음 소스 코드는 직렬화된 이미지를 포함하는 AppResources.resx라는 .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 반환합니다. 바이트 스트림으로 직접 작업한 다음 개체로 변환해야 합니다. 이 메서드는 주로 성능상의 이유로 유용합니다. 명시적 개체 대신 리소스를 바이트 스트림으로 검색하면 성능이 향상될 수 있습니다.
반환된 리소스는 속성에 의해 정의된 현재 스레드의 UI 문화권에 CultureInfo.CurrentUICulture 대해 지역화됩니다. 리소스가 해당 문화권에 대해 지역화되지 않은 경우 리소스 관리자는 대체 규칙을 사용하여 적절한 리소스를 로드합니다. 사용 가능한 지역화된 리소스 집합을 찾을 수 없는 경우 는 ResourceManager 기본 문화권의 리소스로 돌아갑니다. 기본 문화권에 대한 리소스 집합을 찾을 수 없는 경우 메서드는 예외를 MissingManifestResourceException throw하거나 리소스 집합이 위성 어셈블리에 상주할 것으로 예상되는 경우 예외를 MissingSatelliteAssemblyException throw합니다. 리소스 관리자가 적절한 리소스 집합을 로드할 수 있지만 라는 name
리소스를 찾을 수 없는 경우 메서드는 를 반환합니다 null
.
속성은 IgnoreCase 의 를 리소스 이름과 비교 name
하는 것이 대/소문자를 구분하지 않는지(기본값) 또는 대/소문자를 구분하는지를 결정합니다.
적용 대상
GetStream(String, CultureInfo)
- Source:
- ResourceManager.cs
- Source:
- ResourceManager.cs
- Source:
- 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
인 경우
사용할 수 있는 리소스 집합을 찾을 수 없으며 기본 리소스가 없는 경우 이 예외를 처리하는 방법에 대한 자세한 내용은 ResourceManager 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 단원을 참조하십시오.
기본 문화권의 리소스가 찾을 수 없는 위성 어셈블리에 있을 경우 이 예외를 처리하는 방법에 대한 자세한 내용은 ResourceManager 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 단원을 참조하십시오.
설명
메서드는 GetStream 개체로 MemoryStream 저장된 리소스의 이름을 사용하고, 리소스의 Object 값을 가져오고, 개체를 UnmanagedMemoryStream 반환합니다. 바이트 스트림으로 직접 작업한 다음 개체로 변환해야 합니다. 이 메서드는 주로 성능상의 이유로 유용합니다. 명시적 개체 대신 리소스를 바이트 스트림으로 검색하면 성능이 향상될 수 있습니다.
반환된 리소스는 로 지정된 culture
문화권 또는 가 인 경우 culture
null
속성에 의해 지정된 문화권에 CultureInfo.CurrentUICulture 대해 지역화됩니다. 리소스가 해당 문화권에 대해 지역화되지 않은 경우 리소스 관리자는 대체 규칙을 사용하여 적절한 리소스를 로드합니다. 사용 가능한 지역화된 리소스 집합을 찾을 수 없는 경우 는 ResourceManager 기본 문화권의 리소스로 돌아갑니다. 기본 문화권에 대한 리소스 집합을 찾을 수 없는 경우 메서드는 예외를 MissingManifestResourceException throw하거나 리소스 집합이 위성 어셈블리에 상주할 것으로 예상되는 경우 예외를 MissingSatelliteAssemblyException throw합니다. 리소스 관리자가 적절한 리소스 집합을 로드할 수 있지만 라는 name
리소스를 찾을 수 없는 경우 메서드는 를 반환합니다 null
.
속성은 IgnoreCase 의 를 리소스 이름과 비교 name
하는 것이 대/소문자를 구분하지 않는지(기본값) 또는 대/소문자를 구분하는지를 결정합니다.
적용 대상
.NET