Tag: c ++

AutoMapper 5.2如何配置

配置AutoMapper以供全局使用的正确方法是什么。 我想将它设置一次,然后在应用程序中使用。 我有一种强烈的感觉,这是错误的。 事实上,我知道这是错误的,因为这会调用一个新实例。 我想要一个全局配置然后你怎么称呼它。 找不到一个好例子! 这就是我所拥有的:但它不是我想要的 public static class AutoMapperConfig { public static IMapper GetMapper() { var config = new MapperConfiguration(cfg => { cfg.CreateMap(); //lots more maps…? }); IMapper mapper = config.CreateMapper(); return mapper; } } 然后用法: var imapper = AutoMapperConfig.GetMapper(); var dest = imapper.Map(logo); UPDATE基于:pinkfloydx33 调用一次,然后配置完成。 public static class AutoMapperConfig { public static […]

如何从.NET导入RSA公钥到OpenSSL

我有一个.NET程序和Borland Win32程序需要传递一些加密安全信息。 现在的计划是让.NET应用程序创建一个公钥/私钥对,将公钥存储在磁盘上,并在.NET程序运行时将私钥保存在内存中。 然后,Borland应用程序将从磁盘读取公钥,并使用OpenSSL库使用公钥加密数据并将结果写入磁盘。 最后,.NET应用程序将读取加密数据并使用私钥对其进行解密。 从.NET导出密钥并将其导入OpenSSL库的最佳方法是什么?

在Windows 7上更改默认音频设备

我希望能够使用C#以编程方式更改Windows 7上的默认音频输出设备(以及可能还有一些基础Win32 API调用)。 我已经完成了我的作业,我听到了很多来自不同来源的混合评论,所以我想再次提出这个问题来得到一个直接的答案。 这实际上是否可行(通过任何方式)? 如果是这样,我将如何做到这一点? 请不要建议使用“AutoIt”或其他类似程序的解决方案……这是一个特定于C#/ .NET的问题。

正确的方法来组织SIZE_T *?

我有以下C ++函数定义,我试图通过托管代码通过PInvoke调用: bool FooBar(SIZE_T* arg1); 我的管理声明如下: [DllImport(“mydll”, SetLastError=true, CharSet=CharSet.Unicode)] private static extern bool FooBar(ref uint arg1); 有些人可能会注意到我最终做的同样的错误。 这不是64位便携式。 SIZE_T的大小可变(32-64位),指针也是如此。 在托管大小上,指针正确转换为64位,但uint没有,并且您最终可以在arg1的高位中使用垃圾。 这是一个特别持久的错误,因为垃圾通常只是零:( 我已经开始工作的唯一解决方案是以下管理声明: [DllImport(“mydll”, SetLastError=true, CharSet=CharSet.Unicode)] private static extern bool FooBar(ref IntPtr arg1); 这当然有效,因为IntPtr可以正确地改变它的大小。 在我的代码中,我只是将IntPtr视为一个整数,它可以工作,虽然它看起来像一个丑陋的黑客。 在我看来,应该有一些方法来正确指定,也许使用UnmanagedType.SysUInt,但我一直无法提出任何其他工作解决方案。

从SqlDataReader读取字符串时内存不足

我遇到了一些我无法弄清楚的最奇怪的事情。 我有一个SQL表,其中包含一堆存储在ntext字段中的报告。 当我将其中一个的值复制并粘贴到记事本中并保存它时(使用Visual Studio从不同行中的较小报告中获取值),原始txt文件大约为5Mb。 当我尝试使用SqlDataReader获取相同的数据并将其转换为字符串时,我得到一个内存不足exception。 以下是我尝试这样做的方法: string output = “”; string cmdtext = “SELECT ReportData FROM Reporting_Compiled WHERE CompiledReportTimeID = @CompiledReportTimeID”; SqlCommand cmd = new SqlCommand(cmdtext, conn); cmd.Parameters.Add(new SqlParameter(“CompiledReportTimeID”, CompiledReportTimeID)); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { output = reader.GetString(0); // <— exception happens here } reader.Close(); 我尝试创建一个对象和一个stringbuilder来获取数据,但我仍然得到相同的内存不足exception。 我也试过使用reader.GetValue(0).ToString()也无济于事。 查询只返回1行,当我在SQL Management Studio中运行时,它尽可能快乐。 抛出的exception是: System.OutOfMemoryException was […]

如何在c ++和c#中实现vtables?

让我们有这种情况(在c ++中,在c#类A,B是接口): class A { virtual void func() = 0; }; class B { virtual void func() = 0; }; class X: public A, public B { virtual void func(){ var = 1; } int var;}; X * x = new X; // from what I know, x have 2 vtables, is this the same […]

如何让普通的WebRequest异步和等待?

我需要使以下代码异步和等待。 我需要从Web服务器获取大量数据,然后这些数据将用于填充我的应用程序中的xaml页面。 所以,我需要DefLogin()方法是可以接受的。 可能吗? public void DefLogin() { postData = “My Data To Post”; var url = new Uri(“Url To Post to”, UriKind.Absolute); webRequest = WebRequest.Create(url); webRequest.Method = “POST”; webRequest.ContentType = “text/xml”; webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest); } public void GetRequestStreamCallback(IAsyncResult asynchronousResult) { webRequest = (HttpWebRequest)asynchronousResult.AsyncState; Stream postStream = webRequest.EndGetRequestStream(asynchronousResult); byte[] byteArray = Encoding.UTF8.GetBytes(postData); postStream.Write(byteArray, 0, byteArray.Length); […]

WriteableBitmap内存泄漏?

我正在使用下面的代码创建一个基于UI元素的实时图块。 它在WriteableBitmap上呈现uiElement ,保存位图+返回文件名。 此方法在Windows Phone后台任务代理中运行,我正在运行内存限制。 private string CreateLiveTileImage(Canvas uiElement, int width, int heigth) { var wbmp = new WriteableBitmap(width, heigth); try { wbmp.Render(uiElement, null); wbmp.Invalidate(); var tileImageName = _liveTileStoreLocation; using (var stream = new IsolatedStorageFileStream(tileImageName, FileMode.Create, FileAccess.Write, IsolatedStorageFile.GetUserStoreForApplication())) { wbmp.SaveJpeg(stream, width, heigth, 0, 100); stream.Close(); } uiElement = null; wbmp = null; GC.Collect(); return “isostore:” […]

使用参数从JavaScript调用C#方法

我想用JavaScript中的参数调用C#方法。 如果我删除方法的参数s ,则有可能 function showDetail(kurz) { String s = kurz.toString(); ; } 要测试的C#方法: public void showDetail(String s) { Label_Test.Text = s.ToString(); } public void showDetail() { Label_Test.Text = “”; } 没有参数它工作正常,但有s变量我得到编译器错误: CS0103:当前上下文中不存在名称” 我试过了 showDetail(Object s){….} 并且 showDetail(String s){….} 但它不起作用。

我需要一个最优算法来找到数字N的最大除数。最好是在C ++或C#中

我目前正在使用以下代码,但它对于大数字来说非常慢 static int divisor(int number) { int i; for (i = number / 2; i >= 1; i–) { if (number % i == 0) { break; } } return i; }