BinaryFormatter 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
주의
BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.
개체 또는 연결된 개체의 전체 그래프를 이진 형식으로 직렬화 및 역직렬화합니다.
public ref class BinaryFormatter sealed : System::Runtime::Serialization::IFormatter
public ref class BinaryFormatter sealed : System::Runtime::Remoting::Messaging::IRemotingFormatter
public sealed class BinaryFormatter : System.Runtime.Serialization.IFormatter
[System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class BinaryFormatter : System.Runtime.Serialization.IFormatter
public sealed class BinaryFormatter : System.Runtime.Remoting.Messaging.IRemotingFormatter
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class BinaryFormatter : System.Runtime.Remoting.Messaging.IRemotingFormatter
type BinaryFormatter = class
interface IFormatter
[<System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type BinaryFormatter = class
interface IFormatter
type BinaryFormatter = class
interface IRemotingFormatter
interface IFormatter
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryFormatter = class
interface IRemotingFormatter
interface IFormatter
Public NotInheritable Class BinaryFormatter
Implements IFormatter
Public NotInheritable Class BinaryFormatter
Implements IRemotingFormatter
- 상속
-
BinaryFormatter
- 특성
- 구현
설명
경고
BinaryFormatter
는 안전하지 않으며 안전하게 할 수 없습니다. 자세한 내용은 BinaryFormatter 보안 가이드를 참조하세요.
SoapFormatter 및 BinaryFormatter 클래스 구현 합니다 IRemotingFormatter 원격 프로시저 호출 (Rpc)을 지원 하기 위해 인터페이스 및 IFormatter 인터페이스 (에서 상속는 IRemotingFormatter) 개체 그래프 serialization을 지원 합니다. 합니다 SoapFormatter 클래스에서는 Rpc ISoapMessage 개체를 사용 하지 않고는 IRemotingFormatter 기능.
Rpc를 하는 동안는 IRemotingFormatter 인터페이스를 사용 하면 두 개의 별도 개체 그래프의 사양을: (원격 함수 호출에 대 한 정보를 전달 하는 헤더 개체의 배열을 포함 하는 그래프를 추가 하 고 serialize 할 개체 그래프 예, 트랜잭션 ID 또는 메서드 서명을).
별도의 를 사용하는 BinaryFormatter RPC는 호출된 메서드를 포함하는 원격 개체를 사용하여 서버로 전송되는 메서드 호출과 호출된 메서드의 상태 및 응답 정보를 사용하여 서버에서 클라이언트로 전송되는 메서드 응답입니다.
메서드 호출을 serialization하는 동안 개체 그래프의 첫 번째 개체는 인터페이스를 IMethodCallMessage 지원해야 합니다. 메서드 호출을 역직렬화하려면 매개 변수와 Deserialize 함께 메서드를 HeaderHandler 사용합니다. 원격 인프라를 사용 합니다 HeaderHandler 지 원하는 개체를 생성 하는 대리자는 ISerializable 인터페이스입니다. 는 BinaryFormatter 대리자를 호출할 HeaderHandler 때 호출되는 메서드를 사용하여 원격 개체의 URI를 반환합니다. 반환된 그래프의 첫 번째 개체는 인터페이스를 IMethodCallMessage 지원합니다.
메서드 응답에 대한 serialization 프로시저는 메서드 호출의 직렬화 프로시저와 동일합니다. 개체 그래프의 첫 번째 개체가 인터페이스를 지원해야 한다는 점을 제외하면 입니다 IMethodReturnMessage . 메서드 응답을 역직렬화하려면 메서드를 DeserializeMethodResponse 사용합니다. 시간을 절약하기 위해 호출자 개체에 대한 세부 정보는 메서드 호출 중에 원격 개체로 전송되지 않습니다. 이러한 세부 정보는 매개 변수의 메서드에 전달 DeserializeMethodResponse 되는 원래 메서드 호출에서 IMethodCallMessage 가져옵니다. 메서드에서 반환된 그래프의 첫 번째 개체는 DeserializeMethodResponse 인터페이스를 IMethodReturnMessage 지원합니다.
중요
이진 serialization을 사용하여 신뢰할 수 없는 데이터를 역직렬화하면 보안 위험이 발생할 수 있습니다. 자세한 내용은 모든 입력 유효성 검사 및BinaryFormatter 보안 가이드를 참조하세요.
납기되지 않은 서로게이트
이진 serialization에서 2차원 서로게이트 문자가 손실됩니다. 예를 들어 다음 문자열은 두 Test
단어 사이에 높은 서로게이트 유니코드 문자 (\ud800
)를 포함합니다.
Test\ud800Test
serialization 전에 문자열의 바이트 배열은 다음과 같습니다.
바이트 배열 값 | 문자 |
---|---|
84 | T |
101 | e |
115 | 초 |
116 | t |
55296 | \ud800 |
84 | T |
101 | e |
115 | 초 |
116 | t |
역직렬화 후 상위 서로게이트 유니코드 문자가 손실됩니다.
바이트 배열 값 | 문자 |
---|---|
84 | T |
101 | e |
115 | 초 |
116 | t |
84 | T |
101 | e |
115 | 초 |
116 | t |
생성자
BinaryFormatter() |
사용되지 않습니다.
기본값을 사용하여 BinaryFormatter 클래스의 새 인스턴스를 초기화합니다. |
BinaryFormatter(ISurrogateSelector, StreamingContext) |
사용되지 않습니다.
제공된 서로게이트 선택기와 스트리밍 컨텍스트를 사용하여 BinaryFormatter 클래스의 새 인스턴스를 초기화합니다. |
속성
AssemblyFormat |
사용되지 않습니다.
어셈블리를 찾고 로드하는 작업과 관련된 역직렬 변환기 동작을 가져오거나 설정합니다. |
Binder |
사용되지 않습니다.
(안전하지 않음) 특정 형식으로 직렬화된 개체의 바인딩을 제어하는 SerializationBinder 형식의 개체를 가져오거나 설정합니다. |
Context |
사용되지 않습니다.
이 포맷터에 대한 StreamingContext를 가져오거나 설정합니다. |
FilterLevel |
사용되지 않습니다.
TypeFilterLevel가 수행하는 자동 deserialization의 BinaryFormatter을 가져오거나 설정합니다. |
SurrogateSelector |
사용되지 않습니다.
serialization 및 deserialization을 수행하는 동안 형식 대체를 제어하는 ISurrogateSelector를 가져오거나 설정합니다. |
TypeFormat |
사용되지 않습니다.
serialize된 스트림에서 형식 설명을 레이아웃하는 형식을 가져오거나 설정합니다. |
메서드
Deserialize(Stream) |
사용되지 않습니다.
지정된 스트림을 개체 그래프로 역직렬화합니다. |
Deserialize(Stream, HeaderHandler) |
사용되지 않습니다.
지정된 스트림을 개체 그래프로 역직렬화합니다. 이렇게 되면 제공된 HeaderHandler가 해당 스트림의 모든 헤더를 처리합니다. |
DeserializeMethodResponse(Stream, HeaderHandler, IMethodCallMessage) |
사용되지 않습니다.
지정된 Stream의 원격 메서드 호출에 대한 응답을 역직렬화합니다. |
Equals(Object) |
사용되지 않습니다.
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
사용되지 않습니다.
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
사용되지 않습니다.
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
사용되지 않습니다.
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
Serialize(Stream, Object) |
사용되지 않습니다.
개체나 지정된 최상위(루트)를 가진 개체의 그래프를 해당 스트림으로 serialize합니다. |
Serialize(Stream, Object, Header[]) |
사용되지 않습니다.
개체나 지정된 최상위(루트)를 가진 개체의 그래프를 제공된 헤더가 첨부된 해당 스트림으로 serialize합니다. |
ToString() |
사용되지 않습니다.
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
UnsafeDeserialize(Stream, HeaderHandler) |
사용되지 않습니다.
지정된 스트림을 개체 그래프로 역직렬화합니다. 이렇게 되면 제공된 HeaderHandler가 해당 스트림의 모든 헤더를 처리합니다. |
UnsafeDeserializeMethodResponse(Stream, HeaderHandler, IMethodCallMessage) |
사용되지 않습니다.
지정된 Stream의 원격 메서드 호출에 대한 응답을 역직렬화합니다. |