프로토 타입 TCP 연결을 작성 중이며 전송할 데이터를 균질화하는 데 문제가 있습니다.
현재는 문자열 만 보내지 않지만 앞으로는 개체를 보낼 수 있기를 원합니다.
모든 것이 바이트 배열로 캐스팅 될 수 있다고 생각했기 때문에 코드는 현재 매우 간단합니다.
void SendData(object headerObject, object bodyObject)
{
byte[] header = (byte[])headerObject; //strings at runtime,
byte[] body = (byte[])bodyObject; //invalid cast exception
// Unable to cast object of type 'System.String' to type 'System.Byte[]'.
...
}
이것은 물론 쉽게 해결됩니다
if( state.headerObject is System.String ){...}
문제는 내가 그렇게하면 런타임에 byte []로 캐스팅 할 수없는 모든 유형의 객체를 확인해야한다는 것입니다.
런타임에 byte []로 캐스팅 할 수없는 모든 객체를 알지 못하기 때문에 이것은 실제로 옵션이 아닙니다.
C # .NET 4.0에서 객체를 바이트 배열로 어떻게 변환합니까?
FileStream
또는 이와 같은 핸들을 캡슐화하는 객체를 고려하십시오).