네트워크 통신을 위해 Byte 배열에서 /로 개체를 직렬화 및 비 직렬화하려고하는데 현재 인터페이스 'ISerialize'가 있습니다. 그러나 나는 이것을 반영하기 위해보다 강력한 방법이 있어야한다고 생각해 왔습니다.C# 이진 직렬화
BinaryFormater를 사용하여이 작업을 조금 둘러 봤지만 필자가 필요한 컨트롤을 줄 수 있는지 알 수 없습니다.
편집 : (필드는 너무 오래 그들이 시스템 종류 또는도 [직렬화]이기 때문에 모든 유형이 될 수 있습니다) 다음과 같이 내가 클래스를 장식 beable 싶습니다
[Serializable]
public class MyClass {
[NonSerialized]
SomeOtherClass _classFeild;
[Position (0)]
UInt16 _field1;
[Position (14)]
UInt32 _feild2;
//..........
}
그리고 다음과 같은 기능은
void Test() {
MyObject = new MyClass();
Byte[] raw;
raw = Serializer.Serialize (MyClass); // Results in _field1 at raw[0,1]
// _field2 at raw[14-18]
MyClass Deserialized = Serializer.Deserialize<MyClass> (raw);
}
모든 필드가 networ로/교환되어있다 K 순서 (가 bigEndian)
은 또한 오히려 화이트리스트 필드는 오히려 사람들은 일하지 않는 블랙리스트보다 직렬화되는 것입니다. 그래서 문제는 프레임 워크를 사용하여이 작업을 수행 할 수 있습니까? 아니면 직접 구현을 작성해야합니까?
(제거 내 대답
및 발전기의 출력 특성 권리 귀하의 케이스에 맞는 -하지만 난 질문에 여분의 세부 사항 (귀하의 의견에서)을 추가하는 것이 더 좋을 것이라고 생각합니다 –
입력 주셔서 감사합니다 모두 : D –