Tag: c ++

更新了AutoMapper从3到4打破了inheritance映射

我将AutoMapper从3.3.1更新到4.0.4,这打破了以下映射与此消息 无法将’Foo’类型的对象强制转换为’BarDTO’类型 类 public class FooDTO { // omitted } // derived DTO public class BarDTO : FooDTO { public string Extra { get; set; } } 映射配置 Mapper.CreateMap().ReverseMap(); Mapper.CreateMap(); 制图 Map(foo); // throws cast exception 我也尝试过使用.Include()方法,但没有什么区别。 Mapper.CreateMap() .Include() .ReverseMap(); Mapper.CreateMap(); 我做错了什么,还是一个错误?

entity framework代码第一个多列外键

首先使用代码我设计了3个类: class User { public Int32 ID {get;set;} public virtual ICollection {get;set;} public Int32 MainCityID {get;set;} public UserCityDetail MainCityDetail {get;set;} } class City{ public Int32 ID {get;set;} … } class UserCityDetail{ [Key, Column(Order = 0)] public Int32 UserID {get;set;} [Key, Column(Order = 1)] public Int32 CityID{get;set;} … } 所以基本上我有一个用户在几个城市有不同的细节。 UserCityDetail的用户ID是PK和FK。 我也希望直接参考主要的城市细节,所以我在用户上放置了一个城市ID FK。 如何将用户ID和MainCityID配置为像MainCityDetail的FK一样?

C#是Objective-C和C ++的超级C集吗?

C#是C的超级集合(如Objective-C和C ++)吗? 我的意思是,我可以在C#中编写普通的C,就像我可以用其他提到的语言一样吗?

为2Darrays生成IL

我想使用System.Reflection.Emit命名空间为2D数组构造生成IL。 我的C#代码是 Array 2dArr = Array.CreateInstance(typeof(int),100,100); 使用ildasm ,我意识到为上面的C#代码生成了以下IL代码。 IL_0006: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle) IL_000b: ldc.i4.s 100 IL_000d: ldc.i4.s 100 IL_000f: call class [mscorlib]System.Array [mscorlib]System.Array::CreateInstance(class [mscorlib]System.Type, int32, int32) 我能够生成最后三个IL语句,如下所示。 MethodInfo createArray = typeof(Array).GetMethod(“CreateInstance”, new Type[] { typeof(Type),typeof(int),typeof(int) }); gen.Emit(OpCodes.Ldc_I4_1); gen.Emit(OpCodes.Ldc_I4_1); gen.Emit(OpCodes.Call, createArray); 但我不清楚如何生成拳头IL语句(即IL_0006: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle )) 你有什么主意吗? 此外,有人能指出一些关于如何使用System.Reflection.Emit命名空间以生成IL代码的好教程/文档吗?

SaveState / LoadState后无法设置MediaElement Source

( 注意:所有代码都已严格简化。 ) 问题 暂停/恢复后未设置MediaElement源。 设置源后,CurrentState会快速更改为“已关闭”。 我正在处理MediaFailed事件 – 它不会触发。 我也在处理MediaOpened事件,它也不会触发。 细节 我有以下方法更新MediaElement的Source。 只要应用程序在被暂停后没有尝试恢复,它就能很好地工作。 private async void UpdateMediaElementSource(object sender, EventArgs e) { var videoSource = this.DefaultViewModel.CurrentSource; // a string var file = await StorageFile.GetFileFromPathAsync(videoSource); var videoStream = await file.OpenAsync(FileAccessMode.Read); this.videoMediaElement.SetSource(videoStream, file.ContentType); // The above line works many times as long as the app is not trying […]

无法找到“类型或命名空间’AjaxControlToolkit’的解决方案……”?

Error 3 The type or namespace name ‘AjaxControlToolkit’ could not be found in the global namespace (are you missing an assembly reference?) D:\My App\table\PopUpdata.aspx.designer.cs 58 27 table. 我已经声明了这个javascript但是问题是什么。

c ++中的枚举类-replacement- in c#

看看这些c ++代码: enum class Flag : int32 { f_unread = (1 << 0), f_out = (1 << 1), f_mentioned = (1 << 4), MAX_FIELD = (1 << 4), }; c#中这些代码的隐蔽是什么?

什么是C#等价的C ++ DWORD?

搜索之后,我听说UInt32是C#等价的C ++ DWORD。 我通过执行算法测试结果 *(DWORD*)(1 + 0x2C) //C++ (UInt32)(1 + 0x2C) //C# 他们产生完全不同的结果。 有人可以告诉我C#中DWORD的正确匹配吗?

unit testing委托方法

在unit testing中是否有任何一点方法,它唯一能做的就是委托另一个对象的工作? 例: class abc { … public void MoveLeft() { fallingPiece.MoveLeft(); } … } 出于学习目的,我正在为我现有的一些课程进行unit testing。 例如,为此MoveLeft()方法执行unit testing似乎有点奇怪。 但我不确定如何完成Test-First。 谢谢

C ++到C#事件处理

所以我有了我的C# WinForm应用程序,从它我称之为C ++ CLI MFC dll库。 但是我的C ++库上有一些事件 ,即使这个事件发生在这个库的本机(非CLI)部分。 我需要从我的C#应用​​程序调用一些代码,并在此事件上获得一些数据。 所以当从客户端调用这个本机函数时: bool __stdcall ClassName::WorkQuery() { …… switch(pp->code) { case READCOMPLEX: ………. 我需要从C#带来数据, 所以我需要以某种方式将此注册为事件。