<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>KinectToolbox Issue Tracker Rss Feed</title><link>http://kinecttoolbox.codeplex.com/workitem/list/basic</link><description>KinectToolbox Issue Tracker Rss Description</description><item><title>Closed Issue: Kinect.Toolkit.Vector2 is not serializable [31042]</title><link>http://kinecttoolkit.codeplex.com/workitem/31042</link><description>When I&amp;#39;m closing the project, I get the error&amp;#58;&lt;br /&gt;&lt;br /&gt;Type &amp;#39;Kinect.Toolkit.Vector2&amp;#39; in Assembly &amp;#39;Kinect.Toolkit, Version&amp;#61;1.0.1.0, Culture&amp;#61;neutral, PublicKeyToken&amp;#61;null&amp;#39; is not marked as serializable.&lt;br /&gt;&lt;br /&gt;This comes from the method in LearningMachine.cs&amp;#58;&lt;br /&gt;&lt;br /&gt;        public void Persist&amp;#40;Stream kbStream&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            BinaryFormatter formatter &amp;#61; new BinaryFormatter&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            formatter.Serialize&amp;#40;kbStream, Paths&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;Since Vector2 is a sealed class, you can&amp;#39;t make it serializable. However, Vector2 is a pretty simple class, containing only Length, X, and Y. On the SDK discussion forums, they recommended that we write interfaces for mocks. I think this could also be done for making things like Vector2 serializable.&lt;br /&gt;&lt;br /&gt;For example, something like the following&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#91;code&amp;#93;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Runtime.Serialization&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace Kinect.Toolkit&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#91;Serializable&amp;#40;&amp;#41;&amp;#93;&lt;br /&gt;    public class SerializableVector2 &amp;#58; ISerializable&lt;br /&gt;    &amp;#123;&lt;br /&gt;        public float X &lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.X&amp;#59; &amp;#125;&lt;br /&gt;            set &amp;#123; _vector.X &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public float Y&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.Y&amp;#59; &amp;#125;&lt;br /&gt;            set &amp;#123; _vector.Y &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public float Length&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.Length&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public SerializableVector2 &amp;#40;Vector2 vector&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            this._vector &amp;#61; vector&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public SerializableVector2 &amp;#40;SerializationInfo info, StreamingContext context&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            X &amp;#61; &amp;#40;float&amp;#41;info.GetValue&amp;#40;&amp;#34;X&amp;#34;, typeof&amp;#40;float&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            Y &amp;#61; &amp;#40;float&amp;#41;info.GetValue&amp;#40;&amp;#34;Y&amp;#34;, typeof&amp;#40;float&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public void GetObjectData&amp;#40;SerializationInfo info, StreamingContext context&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            info.AddValue&amp;#40;&amp;#34;X&amp;#34;, X&amp;#41;&amp;#59;&lt;br /&gt;            info.AddValue&amp;#40;&amp;#34;Y&amp;#34;, Y&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private Vector2 _vector&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#91;&amp;#47;code&amp;#93;&lt;br /&gt;&lt;br /&gt;However, there is a lot of using Vector2 in the code, so I&amp;#39;m not sure the best approach. Change all the references from Vector2 to SerializableVector2&amp;#63; Or just convert at the last moment&amp;#63;&lt;br /&gt;Comments: &lt;p&gt;Resolved&lt;/p&gt;</description><author>Deltakosh</author><pubDate>Tue, 19 Jul 2011 07:35:55 GMT</pubDate><guid isPermaLink="false">Closed Issue: Kinect.Toolkit.Vector2 is not serializable [31042] 20110719073555A</guid></item><item><title>Commented Issue: Kinect.Toolkit.Vector2 is not serializable [31042]</title><link>http://kinecttoolkit.codeplex.com/workitem/31042</link><description>When I&amp;#39;m closing the project, I get the error&amp;#58;&lt;br /&gt;&lt;br /&gt;Type &amp;#39;Kinect.Toolkit.Vector2&amp;#39; in Assembly &amp;#39;Kinect.Toolkit, Version&amp;#61;1.0.1.0, Culture&amp;#61;neutral, PublicKeyToken&amp;#61;null&amp;#39; is not marked as serializable.&lt;br /&gt;&lt;br /&gt;This comes from the method in LearningMachine.cs&amp;#58;&lt;br /&gt;&lt;br /&gt;        public void Persist&amp;#40;Stream kbStream&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            BinaryFormatter formatter &amp;#61; new BinaryFormatter&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            formatter.Serialize&amp;#40;kbStream, Paths&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;Since Vector2 is a sealed class, you can&amp;#39;t make it serializable. However, Vector2 is a pretty simple class, containing only Length, X, and Y. On the SDK discussion forums, they recommended that we write interfaces for mocks. I think this could also be done for making things like Vector2 serializable.&lt;br /&gt;&lt;br /&gt;For example, something like the following&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#91;code&amp;#93;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Runtime.Serialization&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace Kinect.Toolkit&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#91;Serializable&amp;#40;&amp;#41;&amp;#93;&lt;br /&gt;    public class SerializableVector2 &amp;#58; ISerializable&lt;br /&gt;    &amp;#123;&lt;br /&gt;        public float X &lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.X&amp;#59; &amp;#125;&lt;br /&gt;            set &amp;#123; _vector.X &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public float Y&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.Y&amp;#59; &amp;#125;&lt;br /&gt;            set &amp;#123; _vector.Y &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public float Length&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.Length&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public SerializableVector2 &amp;#40;Vector2 vector&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            this._vector &amp;#61; vector&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public SerializableVector2 &amp;#40;SerializationInfo info, StreamingContext context&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            X &amp;#61; &amp;#40;float&amp;#41;info.GetValue&amp;#40;&amp;#34;X&amp;#34;, typeof&amp;#40;float&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            Y &amp;#61; &amp;#40;float&amp;#41;info.GetValue&amp;#40;&amp;#34;Y&amp;#34;, typeof&amp;#40;float&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public void GetObjectData&amp;#40;SerializationInfo info, StreamingContext context&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            info.AddValue&amp;#40;&amp;#34;X&amp;#34;, X&amp;#41;&amp;#59;&lt;br /&gt;            info.AddValue&amp;#40;&amp;#34;Y&amp;#34;, Y&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private Vector2 _vector&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#91;&amp;#47;code&amp;#93;&lt;br /&gt;&lt;br /&gt;However, there is a lot of using Vector2 in the code, so I&amp;#39;m not sure the best approach. Change all the references from Vector2 to SerializableVector2&amp;#63; Or just convert at the last moment&amp;#63;&lt;br /&gt;Comments: ** Comment from web user: Deltakosh ** &lt;p&gt;Oups &amp;#58;&amp;#41;&lt;/p&gt;&lt;p&gt;Ok, I marked the Vector2 &amp;#38; Vector3 as serializable &amp;#58;&amp;#41;&lt;br /&gt;I also added a custom binder to allow deserialization of xna vector 2 type.&lt;/p&gt;</description><author>Deltakosh</author><pubDate>Tue, 19 Jul 2011 07:35:40 GMT</pubDate><guid isPermaLink="false">Commented Issue: Kinect.Toolkit.Vector2 is not serializable [31042] 20110719073540A</guid></item><item><title>Created Issue: Kinect.Toolkit.Vector2 is not serializable [31042]</title><link>http://kinecttoolkit.codeplex.com/workitem/31042</link><description>When I&amp;#39;m closing the project, I get the error&amp;#58;&lt;br /&gt;&lt;br /&gt;Type &amp;#39;Kinect.Toolkit.Vector2&amp;#39; in Assembly &amp;#39;Kinect.Toolkit, Version&amp;#61;1.0.1.0, Culture&amp;#61;neutral, PublicKeyToken&amp;#61;null&amp;#39; is not marked as serializable.&lt;br /&gt;&lt;br /&gt;This comes from the method&amp;#58;&lt;br /&gt;&lt;br /&gt;        public void Persist&amp;#40;Stream kbStream&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            BinaryFormatter formatter &amp;#61; new BinaryFormatter&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            formatter.Serialize&amp;#40;kbStream, Paths&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;Since Vector2 is a sealed class, you can&amp;#39;t make it serializable. However, Vector2 is a pretty simple class, containing only Length, X, and Y. On the SDK discussion forums, they recommended that we write interfaces for mocks. I think this could also be done for making things like Vector2 serializable.&lt;br /&gt;&lt;br /&gt;For example, something like the following&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#91;code&amp;#93;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Runtime.Serialization&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace Kinect.Toolkit&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#91;Serializable&amp;#40;&amp;#41;&amp;#93;&lt;br /&gt;    public class SerializableVector2 &amp;#58; ISerializable&lt;br /&gt;    &amp;#123;&lt;br /&gt;        public float X &lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.X&amp;#59; &amp;#125;&lt;br /&gt;            set &amp;#123; _vector.X &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public float Y&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.Y&amp;#59; &amp;#125;&lt;br /&gt;            set &amp;#123; _vector.Y &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public float Length&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return _vector.Length&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public SerializableVector2 &amp;#40;Vector2 vector&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            this._vector &amp;#61; vector&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public SerializableVector2 &amp;#40;SerializationInfo info, StreamingContext context&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            X &amp;#61; &amp;#40;float&amp;#41;info.GetValue&amp;#40;&amp;#34;X&amp;#34;, typeof&amp;#40;float&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            Y &amp;#61; &amp;#40;float&amp;#41;info.GetValue&amp;#40;&amp;#34;Y&amp;#34;, typeof&amp;#40;float&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public void GetObjectData&amp;#40;SerializationInfo info, StreamingContext context&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            info.AddValue&amp;#40;&amp;#34;X&amp;#34;, X&amp;#41;&amp;#59;&lt;br /&gt;            info.AddValue&amp;#40;&amp;#34;Y&amp;#34;, Y&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private Vector2 _vector&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#91;&amp;#47;code&amp;#93;&lt;br /&gt;&lt;br /&gt;However, there is a lot of using Vector2 in the code, so I&amp;#39;m not sure the best approach. Change all the references from Vector2 to SerializableVector2&amp;#63; Or just convert at the last moment&amp;#63;&lt;br /&gt;</description><author>tanderson</author><pubDate>Tue, 19 Jul 2011 05:56:45 GMT</pubDate><guid isPermaLink="false">Created Issue: Kinect.Toolkit.Vector2 is not serializable [31042] 20110719055645A</guid></item></channel></rss>