小编tra*_*ter的帖子

通过合同进行静态检查设计

我最近对.net 4.0/Visual Studio 2010中通过合同进行静态检查设计的想法感到兴奋.

但是我很遗憾地发现它只能在Visual Studio Team System中使用.http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx

是否有任何替代方案可以通过合同对c#进行静态检查设计?

单声道项目是否会将这种功能性添加到编译器中?

.net c# mono

6
推荐指数
1
解决办法
557
查看次数

COM Interop注册

我有一个.NET程序集,我向COM公开.该程序集有两个公共接口和一个公共类.当我构建程序集时,我收到此警告:

(assemblyName.dll)不包含可以为COM Interop注册的任何类型.

我的装配信息包括以下行.

[assembly: ComVisible(true)]
Run Code Online (Sandbox Code Playgroud)

大多数人在网上遇到这个问题,我发现,在他们的装配信息中用上面的行修复了它.这对我没有帮助.

我也尝试添加[ComVisible(true)]类和接口定义,它也没有帮助.

.net c# com

6
推荐指数
1
解决办法
8778
查看次数

使用Linq在IEnumerable <T>中查找序列

在IEnumerable<T>使用LINQ中查找序列的最有效方法是什么

我希望能够创建一个允许以下调用的扩展方法:

int startIndex = largeSequence.FindSequence(subSequence)
Run Code Online (Sandbox Code Playgroud)

匹配必须相邻且有序.

.net c# linq

6
推荐指数
1
解决办法
2287
查看次数

从 Nuget.Server 获取 Json 而不是 XML

我已经设置了一个 Nuget.Server 来托管私有 nuget feed。我正在尝试通过 API 访问该提要,但我无法说服它给我 json 而不是 XML。

我的客户端代码如下:

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var packagesResult = client.GetAsync("http://localhost:61654/nuget/FindPackagesById()?id=\'Moq'").Result;

Console.WriteLine(packagesResult.Content.ReadAsStringAsync().Result);
Run Code Online (Sandbox Code Playgroud)

我已经从 App_Start 检查了格式化程序

GlobalConfiguration.Configuration.Formatters
Run Code Online (Sandbox Code Playgroud)

有四个格式化程序,第一个是 json。

如何让 API 返回 json 而不是 XML?

.net c# nuget-server .net-core

5
推荐指数
1
解决办法
1912
查看次数

托管堆是否不可扩展到多核系统

我在一个多线程应用程序中看到了一些奇怪的行为,我写了这个行为并没有在多个核心上很好地扩展.

以下代码说明了我看到的行为.堆密集型操作似乎不会跨多个核心扩展,而是看起来速度变慢.即使用单个线程会更快.

class Program
{
   public static Data _threadOneData = new Data();
   public static Data _threadTwoData = new Data();
   public static Data _threadThreeData = new Data();
   public static Data _threadFourData = new Data();

   static void Main(string[] args)
   {
      // Do heap intensive tests
      var start = DateTime.Now;
      RunOneThread(WorkerUsingHeap);
      var finish = DateTime.Now;
      var timeLapse = finish - start;
      Console.WriteLine("One thread using heap: " + timeLapse);

      start = DateTime.Now;
      RunFourThreads(WorkerUsingHeap);
      finish = DateTime.Now;
      timeLapse = finish - start;
      Console.WriteLine("Four threads using …
Run Code Online (Sandbox Code Playgroud)

.net c#

4
推荐指数
1
解决办法
249
查看次数

查找使用linq导航点列表所需的距离

使用给定的IEnumerable二维点的linq,假设所有点按列表中出现的顺序进行访问,找到导航所有点所需的距离。

我以为我可以以某种方式使用.Aggregate <>函数,但不知道如何使其工作。问题是聚合返回与列表相同的类型,这是我需要标量(双精度)的一点。

如果使用linq无法解决此问题,那么使用linq可以知道什么类型的问题以及不能解决什么类型的问题会很有趣。

这不是家庭作业,而是个人项目中帮助我学习linq的必需步骤。

.net c# linq

3
推荐指数
1
解决办法
449
查看次数

检测并阻止/延迟窗口移动电源关闭

我有一个窗口移动应用程序,它需要检测电源关闭并在设备关闭之前执行一些操作.

我已经能够检测到设备正在使用pinvoke关闭到RequestPowerNotifications win32 api.

但是,我无法弄清楚如何阻止电源关闭足够长的时间来运行我的代码.

c# winapi compact-framework windows-mobile

2
推荐指数
1
解决办法
1549
查看次数

当数据与块大小匹配时,RijndaelManaged Padding

如果我在RijndaelManaged中使用带有16字节数据的PKCS7填充,那么我得到32字节的数据输出.对于PKCS7,似乎当数据大小与块大小匹配时,它会添加一整个额外的数据块.

如果我使用Zeros填充16字节数据,我得到16字节的数据.因此,对于零填充,如果数据与块大小匹配,则它不会填充.

我搜索了文档,它没有说明填充行为的这种差异.

有人可以指点我某种文档,它指定当数据大小与块大小匹配时,不同填充模式的填充行为应该是什么.

.net c#

2
推荐指数
1
解决办法
630
查看次数

从命令行更新.net标准PackageReference

我们有一堆快速移动的内部nuget程序包。

我们希望这些软件包的使用者始终使用最新版本。当前,我们通过在构建之前在命令行上运行nuget update来在CI系统上执行此操作。

但是,我们现在正在转向.net标准/核心。在.net标准csproj上运行nuget update时,出现以下错误:

无法更新。该项目不包含packages.config文件。

即使.net核心/标准csproj文件已删除了Nuget,Nuget仍然似乎希望使用packages.config。

如何使用.net核心/标准csproj项目的命令行将PackageReferences更新到最新版本?

更新:我创建了一个错误报告,以防万一这是这里的错误:https : //github.com/NuGet/Home/issues/4945

.net c# nuget .net-core .net-standard

2
推荐指数
1
解决办法
358
查看次数

如何从非异步代码中获取有关未等待任务的警告

如果我忘记等待从非异步方法中的异步方法返回的任务,我不会收到警告。由于未观察到的异常,这导致我的代码中存在一些未被发现的错误。

如果调用方法是异步的,我确实会收到警告,但如果调用方法是非异步的,我会收到同样的警告。

我知道您不能等待非异步方法,解决方法是使调用方法异步,然后等待它。但我想要一个警告,让我知道我应该这样做。

在这种情况下,有没有办法让 c# 编译器生成警告?

未等待的任务缺少警告

.net c# task async-await

0
推荐指数
1
解决办法
132
查看次数