Click here to Skip to main content
       

C#

 
AnswerRe: source code for navigation PinmvpDave Kreskowiak20-Feb-13 7:38 
GeneralRe: source code for navigation PinmemberJibesh20-Feb-13 8:32 
GeneralRe: source code for navigation PinmvpDave Kreskowiak20-Feb-13 11:24 
QuestionHow to Show GIF Image Transparent C# Pinmemberishrar19-Feb-13 21:53 
AnswerRe: How to Show GIF Image Transparent C# PinmemberAlan Balkany20-Feb-13 8:28 
QuestionInstall software and menus depending upon radion button selection option used in MSI Pinmembersjs4u19-Feb-13 19:33 
AnswerRe: Install software and menus depending upon radion button selection option used in MSI PinmvpEddy Vluggen20-Feb-13 0:31 
GeneralRe: Install software and menus depending upon radion button selection option used in MSI Pinmembersjs4u20-Feb-13 18:12 
GeneralRe: Install software and menus depending upon radion button selection option used in MSI PinmvpEddy Vluggen21-Feb-13 7:06 
Questionproject Pinmemberpramodrastogi9119-Feb-13 18:14 
AnswerRe: project PinmemberJibesh19-Feb-13 19:52 
AnswerRe: project PinmvpAbhinav S19-Feb-13 22:25 
AnswerRe: project PinmvpMarcus Kramer20-Feb-13 3:17 
QuestionBinary stream '0' does not contain a valid BinaryHeader. Possible causes are invalid stream or object version change between serialization and deserialization. Pinmemberkandel1519-Feb-13 14:25 
Hello everyone. I get this excepction "Binary stream '0' does not contain a valid BinaryHeader. Possible causes are invalid stream or object version change between serialization and deserialization.". I am looking for solution about this exception 2 day's now with out success.I tried (i think) everthing D'Oh! | :doh: .
Please can someone take a look on code bellow? where is error?
 
Thank's.
 
   
 
private player ByteArrayToPlayer(byte[] temp)
        {
            try
            {
                MemoryStream objectStream = new MemoryStream(temp);
 
                IFormatter BinaryFormatter
                            = new BinaryFormatter();
 
                objectStream.Position =0;
              
                return (player)BinaryFormatter.Deserialize(objectStream);     <--- get exception
            }
            catch (Exception ex)
            {
                ;
            }
            return null;
 

        }
        private byte[] PlayerToByteArray(player o)
        {
            try
            {
                objectStream = new MemoryStream();
 
               IFormatter BinaryFormatter
                            = new BinaryFormatter();
                
                BinaryFormatter.Serialize(objectStream, o);
                objectStream.Seek(0, SeekOrigin.Begin);
                return objectStream.ToArray();
            }
            catch (Exception ex)
            {
                ;
 
            }
 
            return null;
        }
 
Here are classes which serialize and deserialize.
 
[Serializable()]
        public class player :ISerializable
       {
           public byte[] temp;
           public int id;
           public bool isConnected;
           public cube[] receivedCubes;
           public cube[] cubesToSend;
           public string name;
           public bool isLoaded = false;
           public List<index>[] indexes;         // list of field indexes

           public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
           {
               info.AddValue("receivedCubes", receivedCubes);
               info.AddValue("name", name);
               info.AddValue("temp", temp);
               info.AddValue("isConnected", isConnected);
               info.AddValue("isLoaded", isLoaded);
               info.AddValue("cubesToSend", cubesToSend);
               info.AddValue("indexes", indexes);
               info.AddValue("id", id);
               
           }
           public player()
           { }
 
           public player(SerializationInfo info, StreamingContext ctxt)
           {
               receivedCubes = (cube[])info.GetValue("receivedCubes", typeof(cube[]));
               name = (String)info.GetValue("name", typeof(string));
               temp = (byte[])info.GetValue("temp", typeof(byte[]));
               isConnected = (bool)info.GetValue("isConnected", typeof(bool));
               isLoaded = (bool)info.GetValue("isLoaded", typeof(bool));
               cubesToSend = (cube[])info.GetValue("cubesToSend", typeof(cube[]));
               indexes = (List<index>[])info.GetValue("indexes", typeof(List<index>[]));
               id = (int)info.GetValue("id", typeof(int));
 
           }
 

 
       }
 
 [Serializable()]
        public class index   //object idex indicate where cube entry on the screen from other player
        {
            public int x;       
            public int y;
            public int indexOfTargetCube;     // that mark own of index( cube)
            public byte direct;
            public index()
            {
            }
 
              public index (SerializationInfo info, StreamingContext ctxt)
           {
 
               x = (int)info.GetValue("x", typeof(int));
               y = (int)info.GetValue("y", typeof(int));
               indexOfTargetCube = (int)info.GetValue("temp", typeof(int));
               direct=(byte)info.GetValue("isConnected",typeof(byte));
              
           
           }
              public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
            {
                info.AddValue("x", x);
                info.AddValue("y", y);
                info.AddValue("indexOfTargetCube", indexOfTargetCube);
                info.AddValue("direct", direct);
               
 
            }
 
        }
 

 [Serializable()]
    public class cube :ISerializable
    {
        public int x;  // position x
        public int y;   // position y
        public int size;  // size of cube
        public byte direct=2;  // direct , default is rigtUp=2;
        public  byte speed;    // speed cube
        public bool live;      // isLive ???
        public int room = 0;   // where cube is
        public bool isOut;     // idicate for dealer, that is cube out from players
        public bool isMarked = false; // indicate that cube have index
        public byte numOfExit = 0;    // num. of exit for dealer
        public int exploseTimer = 0;   // timer for explose
        public byte sizeTimer;          // timer for size cube
        public byte speedTimer=0;      // timer for speed cube
        public byte stopTimer=0;      // timer for stop cube
        public byte lastDirect=0;      // last direct, if cube keep position
        public int assumeX = 0;        // for index calculate
        public int assumeY=0;          // for index calculate

public cube()
        {
 
        }
 
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
        {
            info.AddValue("x", x);
            info.AddValue("y", y);
            info.AddValue("size", size);
            info.AddValue("direct", direct);
            info.AddValue("speed", speed);
            info.AddValue("live", live);
            info.AddValue("room", room);
            info.AddValue("isOut", isOut);
            info.AddValue("isMarked", isMarked);
            info.AddValue("numOfExit", numOfExit);
            info.AddValue("exploseTimer", exploseTimer);
            info.AddValue("sizeTimer", sizeTimer);
            info.AddValue("speedTimer", speedTimer);
            info.AddValue("stopTimer", stopTimer);
            info.AddValue("lastDirect", lastDirect);
            info.AddValue("assumeY", assumeY);
            info.AddValue("assumeY", assumeY);
 
        }
 

public cube(SerializationInfo info, StreamingContext ctxt)
           {
               x=(int)info.GetValue("x", typeof(int));
               y=(int)info.GetValue("y", typeof(int));
               size=(int)info.GetValue("size", typeof(int));
               direct=(byte)info.GetValue("direct",typeof(byte));
               speed=(byte)info.GetValue("speed", typeof(byte));
               live=(bool)info.GetValue("live", typeof(bool));
               room=(int)info.GetValue("room", typeof(int));
               isOut=(bool)info.GetValue("isOut", typeof(bool));
               isMarked=(bool)info.GetValue("isMarked",typeof(bool));
               numOfExit=(byte)info.GetValue("numOfExit",typeof(byte));
               exploseTimer=(int)info.GetValue("exploseTimer",typeof(int));
               sizeTimer=(byte)info.GetValue("sizeTimer",typeof(byte));
               speedTimer=(byte)info.GetValue("speedTimer",typeof(byte));
               stopTimer=(byte)info.GetValue("stopTimer",typeof(byte));
               lastDirect=(byte)info.GetValue("lastDirect",typeof(byte));
               assumeX=(int)info.GetValue("assumeY",typeof(int));
               assumeY=(int)info.GetValue("assumeY",typeof(int));
         
           }
}

 
private player ByteArrayToPlayer(byte[] temp)
{
try
{
MemoryStream objectStream = new MemoryStream(temp);
 
IFormatter BinaryFormatter
= new BinaryFormatter();
 
objectStream.Position =0;

return (player)BinaryFormatter.Deserialize(objectStream); <--- get exception
}
catch (Exception ex)
{
;
}
return null;
 

}
private byte[] PlayerToByteArray(player o)
{
try
{
objectStream = new MemoryStream();
 
IFormatter BinaryFormatter
= new BinaryFormatter();

BinaryFormatter.Serialize(objectStream, o);
objectStream.Seek(0, SeekOrigin.Begin);
return objectStream.ToArray();
}
catch (Exception ex)
{
;
 
}
 
return null;
}
 
Here are classes which serialize and deserialize.
 
[Serializable()]
public class player :ISerializable
{
public byte[] temp;
public int id;
public bool isConnected;
public cube[] receivedCubes;
public cube[] cubesToSend;
public string name;
public bool isLoaded = false;
public List[] indexes; // list of field indexes
 
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("receivedCubes", receivedCubes);
info.AddValue("name", name);
info.AddValue("temp", temp);
info.AddValue("isConnected", isConnected);
info.AddValue("isLoaded", isLoaded);
info.AddValue("cubesToSend", cubesToSend);
info.AddValue("indexes", indexes);
info.AddValue("id", id);

}
public player()
{ }
 
public player(SerializationInfo info, StreamingContext ctxt)
{
receivedCubes = (cube[])info.GetValue("receivedCubes", typeof(cube[]));
name = (String)info.GetValue("name", typeof(string));
temp = (byte[])info.GetValue("temp", typeof(byte[]));
isConnected = (bool)info.GetValue("isConnected", typeof(bool));
isLoaded = (bool)info.GetValue("isLoaded", typeof(bool));
cubesToSend = (cube[])info.GetValue("cubesToSend", typeof(cube[]));
indexes = (List[])info.GetValue("indexes", typeof(List[]));
id = (int)info.GetValue("id", typeof(int));
 
}
 

 
}
 
[Serializable()]
public class index //object idex indicate where cube entry on the screen from other player
{
public int x;
public int y;
public int indexOfTargetCube; // that mark own of index( cube)
public byte direct;
public index()
{
}
 
public index (SerializationInfo info, StreamingContext ctxt)
{
 
x = (int)info.GetValue("x", typeof(int));
y = (int)info.GetValue("y", typeof(int));
indexOfTargetCube = (int)info.GetValue("temp", typeof(int));
direct=(byte)info.GetValue("isConnected",typeof(byte));


}
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("x", x);
info.AddValue("y", y);
info.AddValue("indexOfTargetCube", indexOfTargetCube);
info.AddValue("direct", direct);

 
}
 
}
 

[Serializable()]
public class cube :ISerializable
{
public int x; // position x
public int y; // position y
public int size; // size of cube
public byte direct=2; // direct , default is rigtUp=2;
public byte speed; // speed cube
public bool live; // isLive ???
public int room = 0; // where cube is
public bool isOut; // idicate for dealer, that is cube out from players
public bool isMarked = false; // indicate that cube have index
public byte numOfExit = 0; // num. of exit for dealer
public int exploseTimer = 0; // timer for explose
public byte sizeTimer; // timer for size cube
public byte speedTimer=0; // timer for speed cube
public byte stopTimer=0; // timer for stop cube
public byte lastDirect=0; // last direct, if cube keep position
public int assumeX = 0; // for index calculate
public int assumeY=0; // for index calculate
 
public cube()
{
 
}
 
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("x", x);
info.AddValue("y", y);
info.AddValue("size", size);
info.AddValue("direct", direct);
info.AddValue("speed", speed);
info.AddValue("live", live);
info.AddValue("room", room);
info.AddValue("isOut", isOut);
info.AddValue("isMarked", isMarked);
info.AddValue("numOfExit", numOfExit);
info.AddValue("exploseTimer", exploseTimer);
info.AddValue("sizeTimer", sizeTimer);
info.AddValue("speedTimer", speedTimer);
info.AddValue("stopTimer", stopTimer);
info.AddValue("lastDirect", lastDirect);
info.AddValue("assumeY", assumeY);
info.AddValue("assumeY", assumeY);
 
}
 

public cube(SerializationInfo info, StreamingContext ctxt)
{
x=(int)info.GetValue("x", typeof(int));
y=(int)info.GetValue("y", typeof(int));
size=(int)info.GetValue("size", typeof(int));
direct=(byte)info.GetValue("direct", typeof(byte));
speed=(byte)info.GetValue("speed", typeof(byte));
live=(bool)info.GetValue("live", typeof(bool));
room=(int)info.GetValue("room", typeof(int));
isOut=(bool)info.GetValue("isOut", typeof(bool));
isMarked=(bool)info.GetValue("isMarked", typeof(bool));
numOfExit=(byte)info.GetValue("numOfExit", typeof(byte));
exploseTimer=(int)info.GetValue("exploseTimer", typeof(int));
sizeTimer=(byte)info.GetValue("sizeTimer", typeof(byte));
speedTimer=(byte)info.GetValue("speedTimer", typeof(byte));
stopTimer=(byte)info.GetValue("stopTimer", typeof(byte));
lastDirect=(byte)info.GetValue("lastDirect", typeof(byte));
assumeX=(int)info.GetValue("assumeY", typeof(int));
assumeY=(int)info.GetValue("assumeY", typeof(int));

}
}

AnswerRe: Binary stream '0' does not contain a valid BinaryHeader. Possible causes are invalid stream or object version change between serialization and deserialization. PinmemberBobJanova20-Feb-13 0:04 
AnswerRe: Binary stream '0' does not contain a valid BinaryHeader. Possible causes are invalid stream or object version change between serialization and deserialization. PinprotectorPete O'Hanlon20-Feb-13 0:11 
QuestionWindows Mobile Pinmemberaymen amri19-Feb-13 5:04 
AnswerRe: Windows Mobile PinmvpAbhinav S19-Feb-13 5:49 
GeneralRe: Windows Mobile Pinmemberaymen amri19-Feb-13 22:44 
AnswerRe: Windows Mobile PinprotectorPete O'Hanlon19-Feb-13 6:00 
GeneralRe: Windows Mobile Pinmemberaymen amri19-Feb-13 22:42 
AnswerRe: Windows Mobile PinprotectorPete O'Hanlon20-Feb-13 2:12 
QuestionHow to create dynamic menu Pinmemberebrahim kalteh19-Feb-13 1:36 
AnswerRe: How to create dynamic menu PinmemberBobJanova19-Feb-13 3:06 
GeneralRe: How to create dynamic menu Pinmemberebrahim kalteh19-Feb-13 8:13 
GeneralRe: How to create dynamic menu PinmemberJibesh19-Feb-13 8:58 
QuestionCLOSING FORMS Pinmemberairmigjr19-Feb-13 0:29 
AnswerRe: CLOSING FORMS PinmemberN a v a n e e t h19-Feb-13 1:05 
AnswerRe: CLOSING FORMS PinmemberV.19-Feb-13 1:23 
GeneralRe: CLOSING FORMS PinmemberJegan Thiyagesan19-Feb-13 3:26 
AnswerRe: CLOSING FORMS PinmvpDave Kreskowiak19-Feb-13 2:11 
GeneralRe: CLOSING FORMS Pinmemberairmigjr19-Feb-13 3:25 
GeneralRe: CLOSING FORMS PinmvpDave Kreskowiak19-Feb-13 10:25 
AnswerRe: CLOSING FORMS PinmemberBobJanova19-Feb-13 3:03 
AnswerRe: CLOSING FORMS PinmemberShameel20-Feb-13 4:47 
QuestionSetup Package for C# Windows application Pinmemberzead18-Feb-13 23:02 
AnswerRe: Setup Package for C# Windows application PinmemberN a v a n e e t h19-Feb-13 1:08 
Questionc# 64 bit .net c++ dll reference problem Pinmemberpeter46218-Feb-13 22:54 
AnswerRe: c# 64 bit .net c++ dll reference problem PinmemberN a v a n e e t h19-Feb-13 1:02 
AnswerRe: c# 64 bit .net c++ dll reference problem PinmvpDave Kreskowiak19-Feb-13 2:16 
GeneralRe: c# 64 bit .net c++ dll reference problem Pinmemberharold aptroot19-Feb-13 3:19 
QuestionHow to read out whole static text present on external application's Input boxes or message boxes in C# Pinmembersham bhand18-Feb-13 20:51 
AnswerRe: How to read out whole static text present on external application's Input boxes or message boxes in C# PinmemberN a v a n e e t h18-Feb-13 22:27 
AnswerRe: How to read out whole static text present on external application's Input boxes or message boxes in C# PinmemberGerry Schmitz19-Feb-13 20:27 
GeneralRe: How to read out whole static text present on external application's Input boxes or message boxes in C# Pinmembersham bhand21-Feb-13 4:48 
GeneralRe: How to read out whole static text present on external application's Input boxes or message boxes in C# PinmemberGerry Schmitz21-Feb-13 8:40 
Question[SOLVED] Not Getting CPU Usage PinmemberAmbiguousName18-Feb-13 18:51 
QuestionC# run a process Pinmemberclassy_dog18-Feb-13 7:02 
AnswerRe: C# run a process PinmvpEddy Vluggen18-Feb-13 7:48 
GeneralRe: C# run a process Pinmemberclassy_dog18-Feb-13 8:22 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web01 | 2.8.140721.1 | Last Updated 26 Jul 2014
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid