从非静态方法构建静态委托

我需要创建一个类的非静态方法的委托。 复杂的是,在创建时我没有对类的重要性,只有它的类定义。 在通话时我确实有实例。 因此,我需要一种方法: 为成员方法构建一个“不完整”的委托,缺少实例。 从1中调用委托明确地传递该类的内容。 这些都可能吗? 怎么样? 注意:我愿意为第一名支付高性能价格,但理想情况下2不应该比委托电话贵很多。

如何将Control的外观转换为图像?

我希望用户能够在显示Control同时拖动它。 我似乎找不到将其外观转换为图像的方法(为了将该图像转换为图标以将其作为拖动图标)。

C# – .NET和CF.NET的代码编译器

我有一个需要使用.NET和Compact .NET Framework编译的项目。 有可能创建一个C#编译器,用两个框架编译我的项目吗? CF.NET Framework中没有一些function,所以我自己创建它(创建与.NET Framework中具有完全相同名称和选项的类。如果我使用类似[CF35]的属性来解析这些类,则可以解析项目和: 使用CF.NET编译项目时使用此类 使用.NET编译项目时忽略此类 ? 感谢所有建设性的答案。 [编辑] 我知道解决方案包括创建两个引用相同文件的项目。 问题是,你应该每次都手动编译。 此外,当你将一个文件添加到一个文件时,你需要打开第二个文件并引用它,它只是无聊而且根据我们很多人来处理同一个项目,我想自动完成这个部分。 似乎可能吗? [编辑2]除了……资源文件外,一切正常! 所以,要恢复,我有三个项目: 开发项目(CF.NET) 发布项目(CF.NET 3.5),包括所有文件通过“” 发布项目(NET 3.5),包括所有文件“” 如上所述,一切正常,但现在我的问题是使用资源文件。 申请使用它的方法是什么? 当我使用开发项目时,正确检索资源文​​件 当我使用另外两个项目时,ResourceManager会抛出MissingManifestResourceException 任何的想法?

将一个非常大的二进制文件逐步转换为Base64String

我需要帮助将非常大的二进制文件(ZIP文件)转换为Base64String并再次返回。 这些文件太大而无法一次性加载到内存中(它们会抛出OutOfMemoryExceptions),否则这将是一项简单的任务。 我不想单独处理ZIP文件的内容,我想处理整个ZIP文件。 问题: 我可以将整个ZIP文件(测试大小从1 MB到目前的800 MB)转换为Base64String,但是当我将其转换回来时,它已损坏。 新的ZIP文件是正确的大小,它被Windows和WinRAR / 7-Zip等识别为ZIP文件,我甚至可以查看ZIP文件内部并查看具有正确尺寸/属性的内容,但是当我试图从ZIP文件中提取,我得到:“错误:0x80004005”这是一般错误代码。 我不确定腐败发生的地点或原因。 我做了一些调查,我注意到以下几点: 如果您有一个大文本文件,您可以逐步将其转换为Base64String而不会出现问题。 如果在整个文件上调用Convert.ToBase64String ,则会产生: “abcdefghijklmnopqrstuvwx” ,然后在文件中调用两个部分将产生: “abcdefghijkl”和“mnopqrstuvwx” 。 不幸的是,如果文件是二进制文件,那么结果就不同了。 虽然整个文件可能会产生: “abcdefghijklmnopqrstuvwx” ,尝试将其分为两部分会产生类似: “oiweh87yakgb”和“kyckshfguywp” 。 有没有办法逐步基础64编码二进制文件,同时避免这种损坏? 我的代码: private void ConvertLargeFile() { FileStream inputStream = new FileStream(“C:\\Users\\test\\Desktop\\my.zip”, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[MultipleOfThree]; int bytesRead = inputStream.Read(buffer, 0, buffer.Length); while(bytesRead > 0) { byte[] secondaryBuffer […]

C#中的MS Word Automation – 无法将’System.String ‘类型的对象强制转换为’System.String ‘

我使用此代码获取MS Word 2007文档(.docx)中使用的标题字符串数组: dynamic arr = Document.GetCrossReferenceItems(WdReferenceType.wdRefTypeHeading); 使用调试器,我看到arr被动态分配了一个String数组,其中包含文档中所有标题的标题(大约40个条目)。 到现在为止还挺好。 然后,我想访问字符串,但不管我怎么做,我得到以下exception: InvalidCastException: Unable to cast object of type ‘System.String[*]’ to type ‘System.String[]’. 我尝试了不同的访问字符串的方法: 按索引: String arr_elem = arr[1]; 通过强制转换为IEnumerable: IEnumerable list = (IEnumerable)arr; 通过使用简单的foreach循环: foreach (String str in arr) { Console.WriteLine(str); } 但是,无论我尝试什么,我总是会遇到如上所示的相同exception。 任何人都可以解释我在这里缺少什么/我做错了什么? 特别是String[*] – 它是什么意思?

如何从Apple iPhone拍摄的图像中读取EXIF数据

如何从使用C#的Apple iPhone拍摄的图像中读取EXIF数据? 我需要GPS相关数据。 PS:除了使用Apple iPhone拍摄的图像外,我知道如何阅读EXIF

获取Windows 8桌面应用程序中的位置

我是C#的初学者,但我经常使用Java。 我想在我的应用程序中使用以下代码来获取位置数据。 我正在制作一个Windows 8桌面应用程序,以便在我的设备中使用GPS传感器: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using Windows.Devices.Sensors; using Windows.Devices.Geolocation; using Windows.Devices.Geolocation.Geoposition; using Windows.Foundation; namespace Hello_Location { public partial class Form1 : { public Form1() { InitializeComponent(); } async private void Form1_Load(object sender, EventArgs e) { Geolocator loc = new Geolocator(); […]

unit testing插入/更新/删除

我用谷歌搜索了一下,并没有找到我需要的答案。 我正在使用SQL Server和LINQ为客户开发C#的网页。 我希望用户能够相互发送消息。 所以我所做的就是用实际进入数据库的数据对其进行unit testing。 问题是我现在依赖至少有2个用户,我知道他的ID。 此外,我必须自我清理。 这导致了相当大的unit testing,在一次测试中进行了很多测试。 让我们说我想更新一个用户。 这意味着我必须停止用户,更新它,然后删除它。 这在一个unit testing中有很多断言,如果失败并且更新,我必须手动删除它。 如果我以任何其他方式执行此操作,而不将数据保存到DB,我肯定无法知道更新后数据是否存在于数据库中等。 如果没有在一次测试中测试大量function的测试,那么正确的方法是什么?

在字符串上构建表达式时如何实现LessThan等

我有一个包,我正在构建表达式树,通过PredicateBuilder与EntityFramework一起使用: public Expression<Func> constructaPredicate(ExpressionType operation, string fieldName, Expression value) { var type = typeof(T); var parameter = Expression.Parameter(type); var member = Expression.PropertyOrField(parameter, fieldName); Expression comparison = Expression.MakeBinary(operation, member, value); var expression = Expression.Lambda<Func>(comparison, parameter); return expression; } 这种方法很好,除了比较字符串和GreaterThan等。在这种情况下,我得到一个例外: The binary operator GreaterThan is not defined for the types ‘System.String’ and ‘System.String’. 这很简单。 浏览一下,我发现只有少数几个引用这个问题,没有在我正在做的事情的背景下。 当然,问题是没有String.GreaterThan方法。 通常的答案是使用String.CompareTo(),但我还没弄清楚如何使这项工作。 […]

使用Nancy TinyIoC配置JsonNetSerializer和JsonNetBodyDeserializer

我是南希的菜鸟。 我一直在使用它作为生成REST API的框架。 我熟悉Json.NET所以我一直在玩Nancy.Serialization.JsonNet包。 我的目标:自定义JsonNetSerializer和JsonNetBodyDeserializer的行为(即更改设置)。 具体来说,我想加入以下设置…… var settings = new JsonSerializerSettings { Formatting = Formatting.Indented }; settings.Converters.Add( new StringEnumConverter { AllowIntegerValues = false, CamelCaseText = true } ); 我想使用内置的TinyIoC容器来执行此自定义,以避免inheritance链并限制Nancy.Serialization.JsonNet包中任何更改引起的潜在问题。 注意:作为临时解决方法,我利用inheritance来创建CustomJsonNetSerializer和CustomJsonNetBodyDeserializer 。 我已经尝试了几种方法来至少为JsonNetSerializer整合这种配置。 我还没有尝试使用TinyIoC配置JsonNetBodyDeserializer。 我想它会以同样的方式完成。 我尝试过的所有工作都在我的CustomNancyBootstrapper (它inheritance自DefaultNancyBootstrapper )中。 到目前为止最成功的方法:覆盖ConfigureApplicationContainer protected override void ConfigureApplicationContainer( TinyIoCContainer container ) { base.ConfigureApplicationContainer( container ); // probably don’t need both registrations, […]