Tag: primitive

XMLSerialization:参数对象’Sw’的类型不是原始的

我正在尝试将对象序列化为XML文件,但是我收到了上述错误。 问题似乎是包含基类列表的对象,但是由从基类派生的对象填充。 示例代码如下: public class myObject { public myObject() { this.list.Add(new Sw()); } public List list = new List(); } public class Units { public Units() { } } public class Sw : Units { public Sw(); { } public void main() { myObject myObject = new myObject(); XmlSerializer serializer = new XmlSerializer(typeof(myObject)); TextWriter textWriter […]

XNA – 以正确的顺序绘制四边形(和基元)

我对XNA中的3D内容很新,不幸的是我遇到了一个问题我无法找到解决方案。 (甚至不知道问题是什么)。 简而言之:我在游戏中使用以下方法绘制四边形: effect.World = Matrix.Identity * Matrix.CreateRotationX(Rotation.X) * Matrix.CreateRotationY(Rotation.Y) * Matrix.CreateRotationZ(Rotation.Z) * Matrix.CreateTranslation(Position); // Apply camera-matrixes effect.View = viewMatrix; effect.Projection = projectionMatrix; graphics.VertexDeclaration = vertDec; // Begin effect drawing effect.Begin(); foreach (EffectPass pass in effect.CurrentTechnique.Passes) { pass.Begin(); graphics.DrawUserIndexedPrimitives ( PrimitiveType.TriangleList, quad.Vertices, 0, 4, quad.Indexes, 0, 2); pass.End(); } effect.End(); 我的效果也有这些属性: this.effect.TextureEnabled = true; this.effect.Texture […]

覆盖Json.Net中的默认原始类型处理

有没有办法在处理原始类型时覆盖Json.net的默认反序列化行为? 例如,当将json数组[3.14,10,”test”]反序列[3.14,10,”test”]某种类型的object[] 3.14将为double类型, 10将为long类型。 无论如何我可以截取或覆盖这种类型的决定,所以我可以分别将值反序列化为decimal和int ? 我基本上总是希望json整数总是作为int返回并且浮点数以decimal返回。 这将节省我一些必须在我的代码中注入double到decimal转换。 我已经考虑扩展Newtonsoft.Json.Serialization.DefaultContractResolver并实现我自己的Newtonsoft.Json.JsonConverter但我还没有找到任何方法来实现这个所需的覆盖。 要重现的示例代码 object[] variousTypes = new object[] {3.14m, 10, “test”}; string jsonString = JsonConvert.SerializeObject(variousTypes); object[] asObjectArray = JsonConvert.DeserializeObject(jsonString); // Contains object {double}, object {long}, object {string}

如何非递归地定义“原始”类型?

由于C#中的struct由其成员的位组成,因此您不能拥有包含任何T字段的值类型T : // Struct member ‘T.m_field’ of type ‘T’ causes a cycle in the struct layout struct T { T m_field; } 我的理解是上述类型的实例永远不能被实例化* – 任何尝试这样做会导致实例化/分配的无限循环(我猜这会导致堆栈溢出? ** ) – 或者,另外,另一个看待它的方式可能是定义本身没有意义; 也许这是一个弄巧成拙的实体,有点像“这句话是假的”。 但奇怪的是,如果你运行这段代码: BindingFlags privateInstance = BindingFlags.NonPublic | BindingFlags.Instance; // Give me all the private instance fields of the int type. FieldInfo[] int32Fields = typeof(int).GetFields(privateInstance); foreach (FieldInfo […]