어떤 항목은 기존의 100여 개의 DLL을 호출하여 서열화할 수 없는 실체 클래스를 서열화할 수 있는
5792 단어 서열화
이 dll들은 또 다른 사람이 개발한 것이기 때문에 우리는 그것들의 계승과MarshalByRefObject를 수정할 수 없다. 그리고 많은 유형이 이미 계승되었다...
그러면 장르를 서열화하는 데 공을 들일 수밖에 없어요.
이전에 한 편의 문서를 써서 어떻게 서열화할 수 없는 종류를 서열화할 수 있는지 생각해 본 적이 있다
시리얼화할 수 없는 클래스 선언은 다음과 같습니다.
public
class
InputParameter
{
public
string
Name;
public
int
?
Type;
public
decimal
Money {
get
;
set
; }
}
그나저나 이런 종류는 정말 엉망진창이야.....--#
하위 클래스를 실현하고 ISerializable 인터페이스를 실현하면 InputParameter를 전달해야 하는 곳에서 하위 클래스로 대체할 수 있습니다
코드는 다음과 같습니다.
public
class
SerializableParameter : InputParameter, ISerializable
{
public
SerializableParameter(SerializationInfo info, StreamingContext context)
{
this
.Name
=
info.GetString(
"
Name
"
);
if
(info.GetValue(
"
Type
"
,
typeof
(Object))
!=
null
)
this
.Name
=
info.GetString(
"
Type
"
);
this
.Money
=
info.GetDecimal(
"
Money
"
);
}
public
void
GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue(
"
Name
"
,
this
.Name);
info.AddValue(
"
Type
"
,
this
.Type);
info.AddValue(
"
Money
"
,
this
.Money);
}
}
C# 인터페이스에서 구조 함수를 정의할 수 없음...정말 비극적이군.
PS:이 방법은 한계가 있어요.
1. 부류는 밀봉할 수 없다
2. 부류는 사유 구조 함수만 있을 수 없음 (private와 보호된 구조 함수 선택
C# 인터페이스에서 구조 함수를 정의할 수 없음...그래서 여기에 대응하는 구조 함수가 정의되지 않았는데...런타임 오류 발생...(BTW C#도 정적 인터페이스를 정의할 수 없음....CLR 가능)
List와 같은 집합은List
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 정렬화 및 반정렬화 인스턴스 상세 정보Java 정렬화 및 반정렬화 인스턴스 상세 정보 분포식 응용에서 대상은 서열화를 거쳐야만 각 분포식 구성 요소 사이에서 전송할 수 있다. 이것은 두 가지 측면의 기술인 송신자가 대상을 서열화하고 수용자가 대상을 반서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.