Prototip bir TCP bağlantısı yazıyorum ve gönderilecek verileri homojenize etmekte bazı sorunlar yaşıyorum.
Şu anda dizelerden başka bir şey göndermiyorum, ancak gelecekte herhangi bir nesneyi gönderebilmek istiyoruz.
Kod şu anda oldukça basit, çünkü her şeyin bir bayt dizisine dönüştürülebileceğini düşündüm:
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[]'.
...
}
Elbette bu, bir
if( state.headerObject is System.String ){...}
Sorun şu ki, eğer bu şekilde yaparsam, çalışma zamanında bir bayta [] dönüştürülemeyen HER tür nesneyi kontrol etmem gerekir.
Çalışma zamanında bir bayta [] dönüştürülemeyen her nesneyi bilmediğim için, bu gerçekten bir seçenek değil.
C # .NET 4.0'da herhangi bir nesne bir bayt dizisine nasıl dönüştürülür?
FileStream
veya bunun gibi bir tutamacı içeren herhangi bir nesneyi düşünün).