小编Joh*_*zen的帖子

为什么这个C#代码合同格式错误?

我在下面编写此合同时显示错误.

错误20方法'.... get_Page'中的格式错误的合同部分

'if'块有问题吗?

public int? Page
{
get
{
    int? result = Contract.Result<int?>();

    if (result != null)
        Contract.Ensures(result >= 0);

    return default(int?);
}
}
Run Code Online (Sandbox Code Playgroud)

编辑:

Lasse V. Karisen发表评论时发表了评论:

怎么样:Contract.Ensures(result == null || result> = 0); ?

是卡里森,我之前尝试过这个并编译.但问题仍然存在:在使用合同时是不是可能有ifs?

我遇到的另一个问题是无能为力(主要考虑上面的例子),还涉及结果的使用:

public int IndexOf(T item)
{
    Contract.Assert(item != null);
    Contract.Assert((item as IEntity).ID > 0);

    int result = Contract.Result<int>();
    Contract.Ensures(result >= -1);

    return default(int);
}
Run Code Online (Sandbox Code Playgroud)

c# code-contracts microsoft-contracts c#-4.0

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

将以".cshtml"结尾的请求路由到控制器

(这是交叉发布到ASP.NET表单)

我正在研究WebGit .NET项目,我们接近"1.0"版本.但是,我无法使用"浏览"控制器(将文件从存储库中取出)来提供".cshtml"文件.

我最初也遇到了".config"和".cc"文件的问题,但我在web.config中修复了这个问题:

  <location path="browse">
    <system.webServer>
      <security>
        <requestFiltering>
          <fileExtensions allowUnlisted="true">
            <clear />
          </fileExtensions>
          <hiddenSegments>
            <clear />
          </hiddenSegments>
        </requestFiltering>
      </security>
    </system.webServer>
  </location>
Run Code Online (Sandbox Code Playgroud)

应该处理此请求的路由(成功路由其他所有内容)是:

routes.MapRoute(
    "View Blob",
    "browse/{repo}/blob/{object}/{*path}",
    new { controller = "Browse", action = "ViewBlob", path = UrlParameter.Optional });
Run Code Online (Sandbox Code Playgroud)

现在,每当我尝试访问以".cshtml"结尾的URL时,即使我的请求应该由"浏览"控制器处理,它也会给出404.我正在服务的文件不存在于磁盘上,而是作为blob从git存储库中提取.我尝试过的每个其他文件扩展名都可以.

我该如何解决这个问题?


编辑:我试过像这样禁用WebPages:

<appSettings>
  <add key="webpages:Enabled" value="false" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果.

iis routing asp.net-mvc-3

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

如何在当前版本的内容中搜索裸Git仓库中的字符串?

Git是否可以在裸存储库中搜索特定字符串中的文本文件的内容?

我正在为WebGit .NET构建搜索功能,以允许搜索所有存储库的当前状态以获取文本.

git

4
推荐指数
2
解决办法
2814
查看次数

如何确定给定字体的最大高度(以像素为单位)?

我需要测量或以某种方式确定给定字体的最大高度.

我还需要确定字体的基线在哪里.

Graphics.MeasureString函数似乎只确定特定字符串的边界框(这很有用,但不是我现在需要的).

具体来说,我只寻找字体的垂直大小(以像素为单位).但是,它需要垂直容纳所有可能的字符串.

这是否可以以编程方式确定?

c# gdi+ winforms

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

这是.NET的RegEx引擎中的错误吗?

我有两个正则表达式,用于Regex.Split:

(?<=\G[^,],[^,],)
Run Code Online (Sandbox Code Playgroud)

(?<=\G([^,],){2})
Run Code Online (Sandbox Code Playgroud)

拆分字符串时"A,B,C,D,E,F,G,",第一个字符串会导致:

A,B, 
C,D, 
E,F, 
G, 
Run Code Online (Sandbox Code Playgroud)

第二个结果是:

A,B, 
A, 
C,D, 
C, 
E,F, 
E, 
G, 
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?我认为这(X){2}总是相当于XX,但我不确定了.在我的实际问题中,我需要做一些比较复杂的事情,我需要做六十九次,所以重复模式不太理想.

.net regex regex-lookarounds

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

Subversion标记和安全性

我已经从头开始设置了一个SVN存储库,并且我已经使用SVN复制命令成功标记了我的一些版本.

我使用了SSPI auth插件来实现apache,因此我们的开发人员只需使用他们的网络凭据来访问服务器,一切都运行良好.

我创建了一个AuthZ授权文件,将我们的开发人员添加到文件中的组,并授予他们对root的写入权限.我还授予匿名用户对root的只读访问权限.

然后我用以下命令锁定/ svn /目录:Require-group"CORP\CKAN0BlahBlah"

这有效地将安全组中的新开发人员限制为只读访问,直到他们通过aAuthZ配置文件被授予访问权限.

现在,我有几个问题:

  1. 什么是阻止用户将更改提交到任何"标签"目录的正确方法(荣誉系统除外)?

  2. 是否可以使用SSPI将组成员传递给AuthZ,而不是在配置文件中单独列出成员?

svn version-control pre-commit-hook batch-processing

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

如何从ASP.NET MVC应用程序返回404响应?

我有一个控制器,它从数据库中提取图像,重新调整大小,将结果缓存在磁盘上,然后将图像吐出Content().

最近我在我的网站上添加了对"Scrape-buster"代码的支持.也就是说,我将每个图像附加的唯一代码的哈希加上一些盐,并将该哈希的前几个字符传递给用户,以便在检索期间进行确认.这使我可以防止人们从网站上刮掉每一张图片.(没有登录,也刮掉HTML,就是这样.)

无论如何,如果ScrapeBuster代码不正确,我想从我的控制器返回404错误.有没有内置的方法来做到这一点,还是我正在寻找建立自定义ActionResult

asp.net-mvc

3
推荐指数
2
解决办法
3514
查看次数

从数据库中选择数据时的顺序是什么?

假设我有一张桌子:

CREATE TABLE [tab] (
    [name] varchar,
    [order_by] int
)
Run Code Online (Sandbox Code Playgroud)

表中有10行,所有行对order_by都有相同的值(假设它为0)

如果我然后发出以下SQL:

select * from [tab] order by [order_by]
Run Code Online (Sandbox Code Playgroud)

行的顺序是什么?在这种情况下,什么因素决定了行顺序?

sql sql-server

3
推荐指数
2
解决办法
195
查看次数

将静态方法附加到类而不是类的实例的最佳方法是什么?

如果我有一个计算两个整数的最大公约数的方法:

public static int GCD(int a, int b)
{
    return b == 0 ? a : GCD(b, a % b);
}
Run Code Online (Sandbox Code Playgroud)

将它附加到System.Math类的最佳方法是什么?

以下是我提出的三种方式:

public static int GCD(this int a, int b)
{
    return b == 0 ? a : b.GCD(a % b);
}

// Lame...

var gcd = a.GCD(b);
Run Code Online (Sandbox Code Playgroud)

和:

public static class RationalMath
{
    public static int GCD(int a, int b)
    {
        return b == 0 ? a : GCD(b, a % b);
    }
}

// Lame...

var gcd …
Run Code Online (Sandbox Code Playgroud)

.net c# math extension-methods language-features

3
推荐指数
2
解决办法
2975
查看次数

在Windows手机应用程序上显示编辑页面的简洁方法是什么?

有没有一种标准的方法来在WP7 silverlight中提供一个参赛表格?

目前我打算使用的NavigationService导航到另一个页面,但我不知道是否有一个更好的办法.

silverlight windows-phone-7

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