Tag: .net

用于识别间距的.NET库

我想写一个简单的程序(最好是在C#中),我用麦克风唱一个音高,程序识别音高对应的音符。 非常感谢您的及时回复。 我澄清一下: 我想要一个(最好是.NET)库来识别我唱的音符。 我想要这样一个图书馆: 我唱歌时识别音符(半音音符)。 告诉我,我离最近的音符有多远。 我打算用这样的库一次唱一个音符。

在Vista上使用C#/ WIA 2.0版进行扫描

我想实现一个无纸化文件系统,并希望使用WIA和C#进行图像采集。 CodeProject等上有很多示例项目。但是,在下载了我能找到的每一个项目之后,我遇到了一个问题。 在每一个中,对WIALib的引用都被打破了。 当我添加“Microsoft Windows Image Acquisition”作为参考时,我的开发工作站(也是运行它的机器)上唯一可用的版本是2.0。 不幸的是,这些示例项目中的每一个似乎都是针对1.x编码的。 引用的内容为“WIA”而不是“WIALib”。 我拍了一下,只是更改了命名空间导入,但显然API完全不同。 是否有关于实施v2.0或升级其中一个现有样本项目的信息?

区分超时与用户取消

HttpClient具有内置超时function(尽管全部是异步的,即超时可以被认为是与http请求function正交,因此可以由通用异步实用程序处理,但除此之外)并且当超时启动时,它将抛出TaskCanceledException (包装在AggregateException )。 TCE包含一个等于CancellationToken.None 。 现在,如果我向HttpClient提供我自己的CancellationToken并使用它取消操作在它完成(或超时)之前,我得到完全相同的TaskCanceledException ,再次使用CancellationToken.None 。 是否还有一种方法, 通过仅查看抛出的exception ,找出超时是否取消了请求,而不必让我自己的CancellationToken可以访问检查exception的代码? PS这可能是一个错误,并且CancellationToken错误地修复了CancellationToken.None吗? 在取消使用自定义CancellationToken的情况下,我希望TaskCanceledException.CancellationToken等于该自定义标记。 编辑为了使问题更加清晰,通过访问原始的CancellationTokenSource ,可以很容易地区分超时和用户取消: origCancellationTokenSource.IsCancellationRequested == true 从exception中获取CancellationToken虽然给出了错误的答案: ((TaskCanceledException)e.InnerException).CancellationToken.IsCancellationRequested == false 这是一个最小的例子 ,由于受欢迎的需求: public void foo() { makeRequest().ContinueWith(task => { try { var result = task.Result; // do something with the result; } catch (Exception e) { TaskCanceledException innerException = e.InnerException as TaskCanceledException; bool […]

适用于.NET的Analytics Reporting API V4客户端库

我正在尝试从我们的Google分析实例中获取一些数据,并且我想使用适用于.NET的Analytics Reporting API V4客户端库( https://developers.google.com/api-client-library/dotnet/apis / analyticsreporting / v4 )这样我就可以将一些数据烘焙到我们构建的管理站点中。 我无法找到使用此代码的任何示例,文档似乎非常稀疏。 我想使用服务帐户进行授权,因为我们只需要查看与我们控制的分析帐户相关联的数据。 如果有人可以提供一些示例代码或指出我正确的方向使用.net api获取一些基本的报告数据,我将不胜感激

如何检测内存泄漏的位置?

我有一个大型网站,似乎正在吸收正在分配的所有内存。 此站点旁边的服务器上没有其他任何内容。 在一个星期内,它吃掉了2场演出,需要重新启动。 目前这是使用IIS 7的服务器2008 32位。我们重新安装使用64位并添加更多内存。 能够追踪泄漏发生的位置会很好。 那么跟踪内存泄漏的最佳做法是什么?

System.Net.Http.HttpClient vs Windows.Web.Http.HttpClient – 主要区别是什么?

在为Windows开发.NET 4.5桌面应用程序时,我已经习惯使用System.Net.Http.HttpClient进行与后端Web API的所有通信。 我现在正在开发一个Windowsapp store应用,并注意到Windows.Web.Http.HttpClient的存在。 我已经找到了两个客户之间的主要区别但没有运气的信息。 从MSDN我知道我应该开始在我的Windowsapp store应用中使用Windows.Web.Http.HttpClient ,因为可能会从API中删除System.Net.Http.HttpClient : 注意 System.Net.Http和System.Net.Http.Headers命名空间可能在Windows的未来版本中不可用,以供Windowsapp store应用使用。 从Windows 8.1和Windows Server 2012 R2开始,使用Windows.Web.Http命名空间中的Windows.Web.Http.HttpClient和相关的Windows.Web.Http.Headers和Windows.Web.Http.Filters命名空间代替Windows运行时应用程序。 但除了这些信息之外,我很难弄清楚主要区别是什么,使用Windows.Web.Http.HttpClient的主要好处是什么? 它添加了什么,我们还没有进入System.Net.Http.HttpClient ? 非常感谢官方文档支持的答案。

XBAP应用程序,这些可以在谷歌浏览器中使用吗?

我正在开发一个.NET 3.5 XBAP应用程序,它在FF3和IE6 / 7等中运行得非常好。我只是想知道是否有可能让它们在其他浏览器下运行,特别是(因为它在当下的风头)谷歌浏览器。

如何按比例调整.NET中任何类型的图像大小?

可以以独立于图像类型(bmp,jpg,png等)的方式按比例调整图像大小吗? 我有这个代码并知道缺少某些东西(但不知道是什么): public bool ResizeImage(string fileName, string imgFileName, ImageFormat format, int width, int height) { try { using (Image img = Image.FromFile(fileName)) { Image thumbNail = new Bitmap(width, height, img.PixelFormat); Graphics g = Graphics.FromImage(thumbNail); g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; Rectangle rect = new Rectangle(0, 0, width, height); g.DrawImage(img, rect); thumbNail.Save(imgFileName, format); […]

Oracle .Net ManagedDataAccess错误:无法从程序集加载类型’OracleInternal.Common.ConfigBaseClass’

我有一个在本地,我们的开发服务器和我们的生产服务器上工作的项目。 当我尝试在测试服务器上运行它时,我得到下面的错误,除了茫然地盯着我的屏幕,我不知道该怎么办。 提示? 将问题追溯到其来源的过程? 我已经为Oracle 12.2等安装了NuGet包。 无法从程序集“Oracle.ManagedDataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”加载类型“OracleInternal.Common.ConfigBaseClass”。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.TypeLoadException:无法从程序集“Oracle.ManagedDataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342”加载类型“OracleInternal.Common.ConfigBaseClass”。 来源错误: 在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。 堆栈跟踪: [TypeLoadException:无法从程序集’Oracle.ManagedDataAccess,Version = 4.121.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342’加载类型’OracleInternal.Common.ConfigBaseClass’。 Oracle.ManagedDataAccess.EntityFramework.EntityFrameworkProviderSettings.Oracle.ManagedDataAccess.EntityFramework.EFProviderSettings.IEFProviderSettings.get_TracingEnabled()+0 Oracle.ManagedDataAccess.EntityFramework.EFProviderSettings.InitializeProviderSettings()+111 Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices..ctor()+629 Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices..cctor()+28 [TypeInitializationException:’Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices’的类型初始值设定项引发exception。 Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices.get_Instance()+24 Web.Config中包含以下块: 和 注意:此服务器上还有其他项目,它们只是为.Net使用不同版本的Oracle客户端。 其他人都没有使用托管驱动程序。 我正在寻找一种方法来深入研究这个错误,一些暗示该类型的来源和加载方式。

DDD – 如何实现高性能的搜索存储库

我有关于DDD和存储库模式的问题。 假设我有Customer聚合根的Customer存储库。 Get&Find方法返回完全填充的聚合,其中包括Address等对象。一切都很好。 但是当用户在UI中搜索客户时,我只需要聚合的“摘要” – 只是一个包含汇总信息的扁平对象。 我可以解决这个问题的一种方法是正常调用存储库中的find方法,然后在应用程序层中将每个客户聚合映射到CustomerSearchResult / CustomerInfo DTO,并将它们发送回客户端。 但我的问题是性能; 每个Customer聚合可能需要多个查询来填充所有关联。 因此,如果我的搜索条件与50个客户相匹配,那么对于可能检索数据的数据库而言,这是我非常不需要的。 另一个问题是,我可能希望包含有关客户聚合根边界之外的客户的汇总数据,例如最后订单的日期。 订单有自己的聚合,因此要获取客户的订单信息,我必须调用OrderRepository,这也会降低性能。 所以现在我觉得我有两种选择: 向CustomerRepository添加一个额外的Find方法,该方法通过执行一个有效的查询来返回这些摘要对象的列表。 创建一个专门构建的只读CustomerInfoRepository,它只有1中描述的find方法。 但这两种感觉都让我觉得我违背了DDD的原则。 我的存储库inheritance自通用基础:存储库,其中T:IAggregateRoot。 这些摘要信息对象不是聚合,并且与T的类型不同,所以#1真的违背了设计。 也许对于#2,我会创建一个没有IAggregateRoot约束的抽象SearchRepository? 我的域名中有许多类似的场景。 你会如何实现这种情况? 谢谢,戴夫 更新 在阅读Theo的答案之后,我想我会选择#2选项并在我的基础架构中创建一个专门针对这些场景的SearchRepository。 然后,应用程序层(WCF服务)可以调用这些直接填充摘要DTO的存储库,而不是将域实体映射到DTO。 ****更新2 **** 虽然我在一年前问过这个问题,但我想我只是补充一点,因为我发现了CQRS,旨在解决这个问题。 Udi Dahan( http://www.udidahan.com/ )和Greg Young( http://codebetter.com/gregyoung/ )已经写了很多关于它的文章。 如果您使用DDD创建分布式应用程序,CQRS适合您!