요소를 사용할 수있을 때 개체 배열의 이진 데이터 역 직렬화

하여야 한다

게시물과 포럼을 살펴 보았지만이를 달성 할 방법을 찾지 못했습니다.

10,000,000 Person 객체의 배열이 있습니다. Streamed WCF Net.Tcp 웹 서비스를 사용하여 네트워크를 통해 이러한 개체를 보냅니다.

문제는 첫 번째, 예를 들어 배열의 5000 Person 객체를 그대로 읽고 처리하고 싶다는 것입니다. 그 후 스트림을 진행하고 5000 개를 더 읽을 것입니다.

내가 알 수있는 한 C #에는 명시적인 개체 크기가 없기 때문에이 작업을 수행하는 방법을 찾을 수 없었습니다. 에서와 같이 스트림의 처음 312 바이트를 읽고 "예, 이것이 첫 번째 Person 객체입니다. 이제 다음 312 바이트를 읽고 다음 사람을 가져옵니다."라고 말할 수는 없습니다.

이상적으로 ProtoBuf-Net 을 사용 하여 내 개체를 직렬화하고 싶지만 .NET BinaryFormatter 도 괜찮습니다.

나는 또한 5000의 배열과 같은 청크 단위로 데이터를 보낼 수 있습니다.하지만 매번 새로운 tcp 연결을 열지 않고 그렇게하고 싶습니다. 스트림을 읽는 코드에 "좋아, 방금 보낸 모든 것을 역 직렬화 (5000의 배열) 한 다음 스트림에 5000을 계속 쓸 것입니다."이라고 말하는 방법 만 있다면.

어떤 아이디어? 감사.

.NET에서 대부분의 개체에 대해 명시적인 크기가 없을 수 있지만 직렬화 된 개체의 크기를 찾을 수 있습니다. 먼저 직렬화 된 객체의 크기 (바이트)를 보낸 다음 직렬화 된 객체를 보냅니다.

// psuedo-code
byte[] serializedObj = DoSerialization(Person);    // we see length on an array

using (var writer = new StreamWriter(stream)) {
    writer.Write(serializedObj.Length);
    stream.Write(serializedObj);
}

개체를 보내는 내용과 방법을 수정하여 대량으로이 작업을 수행 할 수도 있습니다. 을 만들고 List<Person>N 번호를 추가 Person하고 목록을 직렬화하고 이전과 같이 보낼 수 있습니다.

데이터를 보내기 전에 크기를 보내는 것이 필요한지 확실하지 않지만 스트림을 읽을 때 예상되는 바이트 수를 알면 도움이 될 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 개체 이름-값 쌍을 배열의 요소로 역 직렬화

분류에서Dev

공개 키를 직렬화 할 때 "키 데이터를 역 직렬화 할 수 없습니다"

분류에서Dev

C ++ MFC에서 이진 직렬화 된 개체를 C #에서 역 직렬화 할 수 있습니까?

분류에서Dev

C # JSON.net-비상 수 이름 개체의 유사 배열 개체 역 직렬화

분류에서Dev

protobuf-net에서 주어진 유형을 직렬화 / 역 직렬화 할 때 사용할 사용자 정의 메소드를 지정하는 방법이 있습니까?

분류에서Dev

변수 이름을 사용하여 개체로 역 직렬화

분류에서Dev

'루트 수준의 데이터가 잘못되었습니다'를 역 직렬화 할 때 C # DataContractSerializer 예외

분류에서Dev

C #에서 사용자 지정 직렬화를 사용할 때 XML 요소의 이름을 어떻게 제어 할 수 있습니까?

분류에서Dev

현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

분류에서Dev

Spring MVC는 객체 또는 배열이 될 수있는 JSON을 역 직렬화 할 수 있습니까?

분류에서Dev

servicestack MsgPack 클라이언트를 사용할 때 서비스 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

JSON에서 /에서 중첩 된 파생 개체를 사용하여 C # 데이터 개체 역 직렬화

분류에서Dev

인터페이스 만 사용할 수있을 때 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

인터페이스 만 사용할 수있을 때 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

인터페이스 만 사용할 수있을 때 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

jackson을 사용하여 동일한 ID를 가진 2 개의 개체를 포함하는 Json을 역 직렬화 할 수 없습니다.

분류에서Dev

JsonUtility로 데이터를 역 직렬화 할 수 없습니다.

분류에서Dev

역 직렬화 할 수없는 일부 개체를 포함하는 배열 역 직렬화 (역 직렬화 가능 부분 구하기)

분류에서Dev

요소 이름이 다른 동일한 개체를 사용하여 XML 역 직렬화

분류에서Dev

C #의 목록이있는 개체에 XML 역 직렬화

분류에서Dev

이름은 같지만 요소의 데이터 유형이 다른 두 개의 요소가있는 XML을 어떻게 역 직렬화합니까?

분류에서Dev

이 잭슨 XmlWrapper를 사용하여 클래스에서 두 번째 때 (변환) 미개봉 목록을 역 직렬화 할 수 없습니다

분류에서Dev

사전을 이진으로 직렬화 및 역 직렬화

분류에서Dev

현재 JSON 개체 (예 : { "name": "value"})를 형식으로 역 직렬화 할 수 없습니다. 올바르게 역 직렬화하려면 JSON 배열 (예 : [1,2,3])이 필요합니다.

분류에서Dev

VB.net을 사용하여 Json이 Youtube 데이터를 역 직렬화 할 수 없습니다.

분류에서Dev

케이스가 일치하지 않을 때 열거 형을 어떻게 역 직렬화 할 수 있습니까?

분류에서Dev

데이터 멤버로 동적 배열을 포함하는 개체를 삭제할 때 C ++ 소멸자 사용

분류에서Dev

역 직렬화 할 때 NonSerialized 특성이있는 개체가 생성되지 않습니다.

분류에서Dev

JSON 문자열을 C # 개체로 역 직렬화 할 때 빈 클래스

Related 관련 기사

  1. 1

    JSON 개체 이름-값 쌍을 배열의 요소로 역 직렬화

  2. 2

    공개 키를 직렬화 할 때 "키 데이터를 역 직렬화 할 수 없습니다"

  3. 3

    C ++ MFC에서 이진 직렬화 된 개체를 C #에서 역 직렬화 할 수 있습니까?

  4. 4

    C # JSON.net-비상 수 이름 개체의 유사 배열 개체 역 직렬화

  5. 5

    protobuf-net에서 주어진 유형을 직렬화 / 역 직렬화 할 때 사용할 사용자 정의 메소드를 지정하는 방법이 있습니까?

  6. 6

    변수 이름을 사용하여 개체로 역 직렬화

  7. 7

    '루트 수준의 데이터가 잘못되었습니다'를 역 직렬화 할 때 C # DataContractSerializer 예외

  8. 8

    C #에서 사용자 지정 직렬화를 사용할 때 XML 요소의 이름을 어떻게 제어 할 수 있습니까?

  9. 9

    현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

  10. 10

    Spring MVC는 객체 또는 배열이 될 수있는 JSON을 역 직렬화 할 수 있습니까?

  11. 11

    servicestack MsgPack 클라이언트를 사용할 때 서비스 응답을 역 직렬화 할 수 없습니다.

  12. 12

    JSON에서 /에서 중첩 된 파생 개체를 사용하여 C # 데이터 개체 역 직렬화

  13. 13

    인터페이스 만 사용할 수있을 때 역 직렬화하는 방법은 무엇입니까?

  14. 14

    인터페이스 만 사용할 수있을 때 역 직렬화하는 방법은 무엇입니까?

  15. 15

    인터페이스 만 사용할 수있을 때 역 직렬화하는 방법은 무엇입니까?

  16. 16

    jackson을 사용하여 동일한 ID를 가진 2 개의 개체를 포함하는 Json을 역 직렬화 할 수 없습니다.

  17. 17

    JsonUtility로 데이터를 역 직렬화 할 수 없습니다.

  18. 18

    역 직렬화 할 수없는 일부 개체를 포함하는 배열 역 직렬화 (역 직렬화 가능 부분 구하기)

  19. 19

    요소 이름이 다른 동일한 개체를 사용하여 XML 역 직렬화

  20. 20

    C #의 목록이있는 개체에 XML 역 직렬화

  21. 21

    이름은 같지만 요소의 데이터 유형이 다른 두 개의 요소가있는 XML을 어떻게 역 직렬화합니까?

  22. 22

    이 잭슨 XmlWrapper를 사용하여 클래스에서 두 번째 때 (변환) 미개봉 목록을 역 직렬화 할 수 없습니다

  23. 23

    사전을 이진으로 직렬화 및 역 직렬화

  24. 24

    현재 JSON 개체 (예 : { "name": "value"})를 형식으로 역 직렬화 할 수 없습니다. 올바르게 역 직렬화하려면 JSON 배열 (예 : [1,2,3])이 필요합니다.

  25. 25

    VB.net을 사용하여 Json이 Youtube 데이터를 역 직렬화 할 수 없습니다.

  26. 26

    케이스가 일치하지 않을 때 열거 형을 어떻게 역 직렬화 할 수 있습니까?

  27. 27

    데이터 멤버로 동적 배열을 포함하는 개체를 삭제할 때 C ++ 소멸자 사용

  28. 28

    역 직렬화 할 때 NonSerialized 특성이있는 개체가 생성되지 않습니다.

  29. 29

    JSON 문자열을 C # 개체로 역 직렬화 할 때 빈 클래스

뜨겁다태그

보관