Tag: .net 4.5

如何配置protobuf-net的RuntimeModel.Default以支持序列化/反序列化SessionSecurityToken?

BinaryFormatter能够简单地处理序列化: private byte[] TokenToBytes(SessionSecurityToken token) { if (token == null) { return null; } using (var memoryStream = new MemoryStream()) { var binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, token); return memoryStream.ToArray(); } } 当我尝试用protobuf-net替换BinaryFormatter时: using (var memoryStream = new MemoryStream()) { Serializer.Serialize(memoryStream, token); return memoryStream.ToArray(); } 我得到以下exception: 不期望类型,也不能推断出合同:System.IdentityModel.Tokens.SessionSecurityToken 我尝试添加: RuntimeTypeModel.Default.Add(typeof(SessionSecurityToken), true); 哪个超过exception,但我现在得到一个零字节数组。 如何正确配置protobuf-net以序列化SessionSecurityToken? 另一方面,SessionSecurityToken没有无参数构造函数。 using (var […]

在.net 4.5中有类似dbgeometry makevalid的东西吗?

我正在尝试计算折线的面积 string poly = “POLYGON ((637604.918432772 2230520.64934531, 637622.257266129 2230419.44632915, 637279.107128549 2230192.04910755, 636765.470527745 2230179.6468564, 636778.005055813 2229861.77192838, 636529.81646905 2229464.29327025, 635813.486592791 2229523.30345774, 636017.385069448 2229974.32341381, 636267.323659164 2230070.32127916, 637035.026966561 2230404.70764784, 637275.265066307 2230401.13408429, 637604.918432772 2230520.64934531, 637604.918432772 2230520.64934531))”; DbGeometry gm = DbGeometry.FromText(poly, 32637); double area= gm.Area.Value; // here I got the error Exception has been thrown by the target of an invocation. […]

如何在卸载时通过Wix删除生成的文件夹和文件?

安装后,我在文件夹C:\Program Files (x86)有以下文件夹结构: generated的文件夹的路径是: C:\Program Files (x86)\CompanyName\AppName\generated generated的文件夹包含子文件夹和文件,它们将在运行时通过C#代码由应用程序创建: var lPathToDir = Path.Combine(lFileService.GetFilePath, pSamAccountName); if (!Directory.Exists(lPathToDir)) { Directory.CreateDirectory(lPathToDir); } 变量lPathToDir可以具有以下值: C:\Program Files (x86)\CompanyName\AppName\generated\user1 // or C:\Program Files (x86)\CompanyName\AppName\generated\user2 然后它看起来像: 我的问题:卸载后,这些子文件夹user1 , user2将不会被删除。 我使用以下Wix声明: 卸载后: 为什么这些文件夹会保留,如何从安装文件夹中删除这些生成的文件夹? 当我通过C#创建这些文件夹时,我是否需要设置任何权限?

Howto:Parallel.Foreach在每个进程运行一个新进程(但一次只有一个进程)后执行许多进程?

我相信有人知道这一点,我会非常感谢答案。 我不太了解代表和异步等等 – 所以请给我一个如何实现的一般例子。 我有一个工作流程,我可以使用Parallel.Foreach同时为许多不同的文件执行一个方法(甜,研磨处理器) – 但是在该方法结束后我需要运行另一个方法(它生成一个报告过程),这第二种方法不能并行运行。 我不想等待Parallel.ForEach中的所有文件在生成报告之前完成(这是不必要的)。 但是,如果我在第一个方法结束时启动报告生成方法,那么我会遇到问题。 是否有某种队列或什么? 必须有一些漂亮的方式,对吧? 谢谢

具有动态maxCount的SemaphoreSlim

我遇到了一个问题,我需要限制对另一个Web服务器的调用次数。 它会有所不同,因为服务器是共享的,也许它可能有更多或更少的容量。 我在考虑使用SemaphoreSlim类,但没有公共属性来更改最大计数。 我应该将我的SemaphoreSlim类包装在另一个将处理最大计数的类中吗? 有没有更好的方法? 编辑: 这是我正在尝试的: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Semaphore { class Program { static SemaphoreSlim _sem = new SemaphoreSlim(10,10000); static void Main(string[] args) { int max = 15; for (int i = 1; i <= 50; i++) { new Thread(Enter).Start(new int[] { i, […]

如何在不缓冲的情况下将文件从数据库异步传输到webclient

我正在尝试使用.net 4.5和web api将文件从sql server异步流式传输到Web客户端。 我正在使用SqlDataReader.GetStream()从数据库中获取流。 但是,当webapi从流中读完时,我不确定如何连接数据库连接的处理/关闭。 有样品吗?

WPF:在附加属性中,如何等到可视树正确加载?

我在WPF应用程序中有一个附加属性。 下面的代码在OnLoad事件中,但它不起作用,除非我添加一个hacky 500毫秒延迟。 有没有办法避免这种延迟,并检测可视树何时加载? private static void FrameworkElement_Loaded(object sender, RoutedEventArgs e) { // … snip… Window window = GetParentWindow(dependencyObject); // Without this delay, changing properties does nothing. Task task = Task.Run( async () => { { // Without this delay, changing properties does nothing. await Task.Delay(TimeSpan.FromMilliseconds(500)); Application.Current.Dispatcher.Invoke( () => { // Set False >> True […]

是否可以在没有CancellationToken的情况下取消C#任务?

我需要取消返回任务的API调用,但它不会将CancellationToken作为参数,我不能添加一个。 我该如何取消该任务? 在这种特殊情况下,我正在使用带有Geocoder对象的Xamarin.Forms。 IEnumerable positions = await geo.GetPositionsForAddressAsync(address); 这个电话有时需要很长时间。 对于我的一些用例,用户可以只导航到另一个屏幕,并且不再需要该任务的结果。 我还担心我的应用程序会进入hibernate状态,并且没有停止长时间运行的任务,或者任务完成并且需要不再有效的代码。

Volatile.Read / Volatile.Write是否为“双”primefaces?

MSDN声明 long,ulong,double和decimal,以及用户定义的类型,不保证是primefaces的5.5变量引用的primefaces性 Volatile.Write Method (Double%, Double)可以作为primefaces操作? 如果是这样如何保证? 做Volatile.Write(ref mydouble, value);是安全的Volatile.Write(ref mydouble, value); 在一个线程和Volatile.Read(ref mydouble)在另一个mydouble有double类型? 这是一般性问题。 另一个问题 – 在这种特殊情况下我应该怎么做: 2个处理器Xeon x64服​​务器 Windows + MS .NET 4.5 从不同的线程读/写double 最小的延迟(需要最小因为我正在编写HFT软件)

使用.NET 4.5构建的应用程序可以在.NET 4.0上运行吗?

我的项目是针对.NET 4.5。 它不使用任何新的4.5方法,因此它实际上只在安装了.NET 4.0的机器上正常工作。 在我添加一些扩展方法和reflection之前,这一切都很好。 然后当我在4.0机器上运行这个.NET 4.5程序时,它失败并出现“System.TypeLoadException:无法从程序集mscorlib加载类型’System.Runtime.CompilerServices.ExtensionAttribute’”。 着名的ExtensionAttribute程序已在此处记录良好。 另一种快速测试方法是添加以下行。 然后程序将仅在.NET 4.0上运行时抛出exception。 Console.WriteLine(typeof(System.Runtime.CompilerServices.ExtensionAttribute).Assembly.FullName); 我想知道是否有办法解决它。 例如,ILMerge(当使用链接中记录的正确/ targetplatform选项时)实际上将ExtensionAttribute从mscorlib更改为System.Core(如果项目是针对.NET 4.0(安装了4.5))。 但它似乎不适用于针对.NET 4.5的项目。 我知道这是一个很长的镜头。 但只是想知道是否有人有其他想法,因为它是如此接近。 谢谢。