如果两个对象具有相同的属性,那么一个值是否可以自动分配?

这是一个学术问题比什么都重要……我知道有更多实用的方法可以开发…… 假设您有以下代码: public MyObject1 AssignTest(MyObject1 obj1,MyObject2 obj2){ } MyObject1和MyObject2具有完全相同的可用属性。 是否可以自动将MyObject1中指定的所有值分配给MyObject2? 而不是通过声明性地指定值(即MyObject1.Property1 = MyObject2.Property1等)

使用DotNetZip从zip中提取特定文件夹

我一直在搜索示例,但似乎无法找到涉及提取某个文件夹的DotNetZip场景。 我正在尝试从.zip文件中提取名为“CSS”的文件夹,它是.zip文件中的顶级文件夹。 这是我到目前为止的代码: using (ZipFile zip1 = ZipFile.Read(savedFileName)) { var selection = from e in zip1.Entries where System.IO.Path.GetFileName(e.FileName).StartsWith(“CSS/”) select e; foreach (var e in selection) e.Extract(_contentFolder); } 当前选择什么都没有,我可以使用一些帮助重写它,以便它提取css文件夹及其所有子目录和文件。

将字符串从delphi dll返回到64位的C#调用者

我有一个C#应用程序,它使用以下代码调用本机Delphi dll: C# [DllImport(“NativeDLL.dll”, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)] public static extern int GetString(string out str); delphi function GetString(out a: PChar): Integer; stdcall; begin a := PChar(‘abc’); Result := 1; end; 这在32位应用程序中工作正常。 但是当我为64位编译C#exe和Delphi dll时,我遇到了一个奇怪的问题。 在Delphi调试器中调用GetString之后,我可以看到.NET代码中某处出现exception,并且Debugger Output窗口中出现以下字符串: “检测到严重错误c0000374” 。 Google表示此错误与堆损坏有关。 我尝试使用ref / var参数修饰符而不是out / out。 仍然没有运气。 为什么我会收到此错误? 我应该为64位使用不同的调用约定吗? BTW。 以下组合工作正常: C# [DllImport(“NativeDLL.dll”, CharSet = CharSet.Unicode, […]

ASP.NET MVC3代码优先错误 – 尝试更新实体

我已经检查了这个问题 ,它似乎与我需要的东西有关,但并没有完全回答。 我有一个实体(Sql Compact使用EF Code First通过MVC3-如果标题不清楚的话)“问题”(通用问题跟踪,只是为了我自己的教育理解MVC3如何工作)。 Issue类具有CreatedBy属性(对创建问题的用户的Int引用)和CreatedDate属性(DateTime)。 当我使用scaffolded代码进行更新时(仅修改以防止某些更新的日期字段被用户修改): if (ModelState.IsValid) { issue.LastActivity = (DateTime?)DateTime.Now.Date; if (issue.ClosedBy != null) issue.ClosedDate = (DateTime?)DateTime.Now.Date; startingIssue = null; db.Entry(issue).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction(“Index”); } 我收到链接问题中提到的错误(将datetime2数据类型转换为日期时间数据类型等等) 当我单步执行代码时,看起来我的CreatedBy和CreatedDate属性不包含在控制器传递的issue实例中。 当我尝试通过从数据库中获取问题的另一个副本并将其更新为值来解决此问题时: var startingIssue = db.Issues.Find(issue.IssueId); if (ModelState.IsValid) { if (issue.CreatedBy != startingIssue.CreatedBy) issue.CreatedBy = startingIssue.CreatedBy; if (issue.CreatedDate != startingIssue.CreatedDate) issue.CreatedDate = startingIssue.CreatedDate; […]

在WPF中。 如何通过鼠标拖动滚动ScrollViewer中的对象,就像iPhone一样?

通过鼠标滚轮或滚动条种子拖动滚动效果很好。 但滚动视图上的鼠标拖动内容滚动没有完成。 我该如何实施此操作? Test Test Test Test Test

Windows XP上的Microsoft.Windows.ActCtx

这些天我非常忙于开发activex / com应用程序。 我们的一些客户正在严格限制的Windows环境中工作。 所以我决定让我的应用程序无法使用。 我发现genman32.exe可以轻松创建清单(也是mt.exe很有用)。 一切都很顺利但是当我试图从wsh(vbs或js)执行我的应用程序时 – 由于应用程序在com服务器上运行,因此我的情况是有义务的 – set o = CreateObject(“Application.Interface”) // No object reference 因为“CreateObject”看起来注册并且没有注册入口:)然后我搜索并找到了“actctx”的东西。 在dot.net环境中实现非常容易。 但我必须从wsh(vbs或js)执行我的应用程序;)所以我决定搜索一下然后找到 set o = CreateObject(“Microsoft.Windows.ActCtx”) o.manifest = “L:\\Application.dll.manifest” set app = o.CreateObject(“Application.Interface”) app.Launch() // which is my executing function 问题 – 即使在SP3中,Windows XP的机器也无法使用“Microsoft.Windows.ActCtx”界面 – 微软从未放过任何简单的问题 – 这个问题有什么解决方案吗? 您是否知道创建该接口的任何其他方法或Windows更新?

MonoTouch:应用程序因低内存而被杀,为什么? 实时字节分配5 MB顶部

我的iPad应用程序是用MonoTouch开发的,因为我想避免所有的内存管理地狱,但事实并非如此。 在模拟器上一切正常,但是当我在设备上测试我的应用程序时,我惊恐地发现它在一些内存警告后很快被操作系统杀死了。 我的应用程序是一个简单的图像浏览器,它加载一些PNG图像并使用UIScrollView中的一些UIViews显示它们,在触摸时加载下一个或前一个。 在模拟器上它工作正常。 但是在加载和卸载大约6-11个图像后的设备上,它开始获得内存警告,然后突然该过程被杀死。 我检查了所有的实例循环,并在加载新图像之前正确删除了所有引用。 所以我启动了仪器并开始在iPad上分析我的应用程序的内存分配。 在那里,我发现Live字节只有大约5-9 MB,正如我所期望的那样,但由于一些奇怪的原因,死内存分配几乎完全没有收集,因为在分配了大约50 MB(小于5-9 MB的它是Live Bytes)它被杀了! 以下是我的应用程序的Instruments分析会话的屏幕截图: 这是快照序列: 还有一些小漏洞,但我认为它们不够大,不足以成为罪魁祸首。 它们都是来自strdup的48个字节泄漏,这是在iOS 5.1中发布UIScrollView时的一个已知问题: 即使一切看起来还不错,分配的Live Bytes仍然是5 MB,我的应用程序的REAL内存呈指数级增长,然后在iPad上被杀死高达50MB,而iPhone4S上的高达314 MB,如内存监视器所报告: 有人可以告诉我是否有方法或实用工具来发现问题的原因和位置? 这是一个单调垃圾收集器的错误吗? 还是有一些我没有正确处理的物体? 我怎么能用剖面仪找到那些? 我已经检查了两天我的代码,但一切似乎都正确。 这是我的加载/实例化/处置周期的代码: void StartImageLoadingThread() { tokenSource = new CancellationTokenSource (); token = tokenSource.Token; Task task1 = new Task( () => PerformLoadImageTask(token),token); task1.Start(); } void PerformLoadImageTask(CancellationToken token) { if (token.IsCancellationRequested) { […]

HttpWebRequest和I / O完成端口

我正在开发一个应用程序,它需要一种类型的消息才能访问数据库,而另一种类型的消息要去一些外部的xml api。 我必须处理A LOT …其中一个重大挑战是让HttpWebRequest类表现良好。 我最初开始只使用标准的同步方法和线程整个事情。 这不好。 因此,经过一些阅读后,我看到推荐的方法是使用Begin / End方法将工作委托给IO完成端口,从而释放线程池并产生更好的性能。 这似乎不是这样的……性能稍微好一些,但我当然看不到与threadpool相比使用的IO完成端口。 我有一个旋转的线程,并向我发送线程池中可用的工作线程+完成端口。 完成端口总是非常低(我看到的最大值是9)并且我总是使用大约120个工作线程(有时更多)。 我对httpwebrequest所有方法使用开始/结束模式: Begin/EndGetRequestStream Begin/EndWrite (Stream) Begin/EndGetResponse Begin/EndRead (Stream) 我做得对吗? 我错过了什么吗? 我可以同时使用(有时)多达2048个http连接(来自netstat输出) – 为什么完成端口号会这么低? 如果有人可以就如何处理这个管理工作线程,完成端口和httpwebrequest提供一些认真的建议,那将非常感激! 编辑:.NET是一个合理的工具吗? 我可以使用.NET和System.Net堆栈获得大量的http连接吗? 有人建议使用类似WinHttp(或其他一些C ++库)的东西,并从.NET中调用它,但这不是我特别想做的事情!

是否可以在Windows窗体中“沙盒化”IE?

假设我在Windows窗体中有一个webbrowsercontrol,用户从表单登录到一个安全的站点。 如果用户单独打开IE,它也会显示它们已登录。是否可以隔离Windows窗体的IE实例?

用c#捕捉游戏画面的最快方法(每秒超过20张图像)

如何快速制作整个游戏画面的大屏幕? 像每秒20-30的东西?(我想将它们转换为video) [[1]]我尝试过WMEncoder。结果是WMEncoder只能使用一组预先配置的编解码器以video格式(wma)捕获屏幕和屏幕区域。 (29 fps最佳编码结果).WMEncoder无法制作截图。 [[2]]我试过DirectX: Surface s = device.CreateOffscreenPlainSurface( Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Format.A8R8G8B8, Pool.SystemMemory); device.GetFrontBufferData(0, s); SurfaceLoader.Save(“c:\\Screenshot”+i.ToString()+”.bmp”, ImageFileFormat.Bmp, s); 这就像gdi ..very slow ….它只适用于DirectX 1.0,因为在DirectX 2.0中不存在SurfaceLoader 我在一些post中读到的另一种方式是使用: s = device.GetBackBuffer(0, 0, Microsoft.DirectX.Direct3D.BackBufferType.Mono); ,但这只是截图到了当前的窗口。 [[3]]我曾尝试使用Taksi(在sourceforge.net上)…但我不知道如何在c#中使用它并让它工作。 请帮帮我…