小编cca*_*oni的帖子

具有多个约束的通用方法

我有一个泛型方法,它有两个通用参数.我试图编译下面的代码,但它不起作用.它是.NET限制吗?是否可以为不同的参数设置多个约束?

public TResponse Call<TResponse, TRequest>(TRequest request)
  where TRequest : MyClass, TResponse : MyOtherClass
Run Code Online (Sandbox Code Playgroud)

c# generics .net-3.5

235
推荐指数
4
解决办法
8万
查看次数

NUnit,Assert失败后是否可以继续执行测试?

在包含一些断言的测试中,例如:

Assert.AreEqual(1,1);
Assert.AreEqual(2,1);
Assert.AreEqual(2,2);
Run Code Online (Sandbox Code Playgroud)

是否有可能让测试在某些时候失败后继续运行?在该示例中,第一个条件为真,第二个条件失败并且测试停止.我还要评估以下条件.

.net nunit unit-testing

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

如何引用要在立即或快速监视中使用的命名空间?

有时,当我在运行时快速监视表达式时,"快速监视"窗口会显示一条错误,指出当前上下文中不存在该名称.即时窗口也是如此.然而,我尝试评估的表达式完全被类认可,而不会抛出任何编译错误.

例如,我可以使用以下代码行:

double x = Math.Pow(2,3);
Run Code Online (Sandbox Code Playgroud)

如果我将光标停在此行并快速观察"Math.Pow(2,3)"部分,它会给我一个错误,我需要放置一个"系统".在我表达之前; 正如我所说的,同一个表达式在代码窗口中运行顺畅,所以我不确定错误所指的是哪个"上下文".

难道这些调试窗口引用了类中声明的命名空间,但是对于项目导入的命名空间不能这样做吗?

c# immediate-window visual-studio-2010

32
推荐指数
2
解决办法
5891
查看次数

在Visual Studio中"全部中断"后,有没有办法保留当前文档?

当我在调试时"全部打破"时,Visual Studio会在堆栈顶部打开源代码; 我想将光标放在我正在处理的文档上,而不打开任何其他文档或窗口(例如:没有加载符号).

c# visual-studio

17
推荐指数
2
解决办法
1911
查看次数

使用HTML5 GUI进行跨平台桌面开发

简短的故事:有没有办法用HTML5中的GUI编写桌面应用程序,用python(甚至C#/ Mono)等跨平台语言编写核心?

更长的故事:我是一名C#开发人员,对于我很少做的小型个人项目,在Windows和OSX下都运行,我使用C#(Mono)与前端利用Eto.Forms

我想了解是否有一种使用HTML5 GUI实现相同结果的成熟方法,因为我想了解并相信它可能是近期Windows桌面UI的一个很好的选择(或者是一个不错的工具拥有我的技能).当然,如果在幕后运行的代码是C#,我会非常高兴,但也会让我的脚变得更好,也许更像python的跨平台会很好.

在这个阶段,我对任何面向移动的解决方案都不感兴趣.

c# python html5 desktop-application

14
推荐指数
1
解决办法
1万
查看次数

Asp.NET MVC AjaxOptions OnSuccess太火了......太早了?

我想在完全接收响应并更新DOM后,使用AjaxOptions的OnSuccess选项作为Ajax.BeginForm参数传递给"做某事".至于我可以从MSDN中找不到,这就是这个选项的作用.

在我的应用程序中,OnSuccess脚本在发送请求后立即过早触发.我让线程睡了一会儿,以便更好地看到结果.我应该看到OnSuccess脚本(一个警报)在那个睡眠时间之后被触发,比如2秒.我使用Firebug来查看引擎盖下发生了什么,我看到的只是:我点击按钮(在ajax表单内提交),显示警报(预期前2秒),2秒后firebug显示请求 - 响应,没有更多的事情.

哪里我错了?

先谢谢,山

一些示例代码,正确的问题(我在VS中使用Asp.NET MVC模板启动了一个空白的新解决方案):

主页/索引视图:

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<div id="divPlaceholder">
<% 
    using (Ajax.BeginForm("DoLongTask", "Home", 
    new AjaxOptions() {
        UpdateTargetId = "divPlaceholder", 
        InsertionMode = InsertionMode.Replace,
        OnSuccess = "alert('onsuccess fired')"
    })) 
{
%>
<input type="submit" value="button" />
<% } %>
</div>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

HomeController的

public ActionResult DoLongTask()
{
    if (Request.IsAjaxRequest())
    {
        System.Threading.Thread.Sleep(2000);
        return View();
    }
    else
    {
        throw new NotSupportedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为这足以重现这种行为.空局部视图可用作DoLongTask视图.

asp.net-mvc asp.net-ajax

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

使用C#读取(使用Filesystem.FileGet)VB6记录文件(使用Put编写)

我需要从Visual Basic 6生成的遗留数据库文件中读取数据.从遗留软件中我发现该文件是使用Put并将记录类型作为参数传递给Put函数.这些结构定义如下:

Type THE_TYPE
    FIELD_1 As Single
    FIELD_2 As String * 20
    FIELD_3(1 To 50) As Single
    FIELD_4(1 To 10) As String * 1
End Type
Run Code Online (Sandbox Code Playgroud)

我的类型更大,更复杂,但我在THE_TYPE中添加了我在项目中的不同定义.我发现导入Microsoft.VisualBasic让我可以访问类似于用于编写文件的VB函数,所以我用FileSystem.OpenFile()和.CloseFile()打开和关闭文件.现在我需要最终读取包含的数据,因为原始函数是:

Public RecordContent As THE_TYPE
[...] 
Get #1, recordNumber, RecordContent 
Run Code Online (Sandbox Code Playgroud)

我想我可以使用类似的东西,比如Microsoft.VisualBasic.FileSystem.FileGet().所以问题是,我如何定义一个容器,我想一个类,类似于原来的VB6类型"THE_TYPE"?如何调用.FileGet()来正确填充此对象?

.net c# vb6

7
推荐指数
1
解决办法
2823
查看次数

是否可以创建具有给定大小和MD5哈希的文件?

当然我知道可以创建一个具有一定大小的文件以及如何操作.但是,是否可以创建具有特定大小的文件以及某个MD5指纹?

c# security hash

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

有没有办法在Visual Studio中为资源编辑器设置一个黑暗的主题?

我喜欢我的开发环境中的黑暗主题,但无法找到使Visual Studio的资源编辑器(特别是字符串)变暗的方法.我的VS版本是2015专业版.

这是我的看法:

在此输入图像描述

而UI的其余部分如下所示:

在此输入图像描述

visual-studio visual-studio-2015

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

如何获得ViaGogo API的开发人员密钥

很远,但我想更精确地使用ViaGogo API(C#库).ViaGogo有一个记录良好的公共API,文档可在此处获得.

问题是,你需要进行身份验证,因为它通常发生在这种API上:通常,你会找到网站的一部分,也许在你的个人资料部分,你可以获得密钥,秘密等等(例如在Facebook上发生这种情况)或亚马逊).

至于ViaGogo,我只发现一个指向Google表单的链接:此表单要求提供有关我所需要的完整不同级别的广告和从属关系的信息,我不会发布通过API读取的任何内容.此外,没有留下电子邮件地址的字段.

从NuGet的下载中我们可以看出他们的C#库似乎很受欢迎; 我想知道这些成千上万的开发者是如何成功地称之为API的.

有没有人成功从ViaGogo获得身份验证信息?

c#

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

Windows窗体Web浏览器控制缩放级别

我正在使用Web浏览器控件在我的应用程序中显示一些动态生成的HTML文档.

问题是,在我的机器上说文件显示有点放大.在其他同事的电脑上,一切看起来都很"正常".它必须是某种本地设置,但我找不到改变它的位置.

我可以按CTRL +滚轮缩小,但不保留缩放级别.据我所知,没有简单的方法来以编程方式设置预定义的缩放级别.

这可能是一个很长的镜头,但我担心它与Internet Explorer(我从未使用过)及其设置有关.不幸的是,改变控制类型不是一个可行的选择.

非常感谢任何帮助,谢谢.

.net c# internet-explorer webbrowser-control winforms

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

如何仅针对新呼叫标记过时/弃用的方法?

问题是我的代码库的很大一部分使用了一些我现在认为已弃用的方法,并且我想将开发人员重定向到其他方法.

我知道ObsoleteAttribute,但这会导致所有现有代码出现大量警告.那么,有没有办法避免(至少部分地,例如通过对整个库的pragma禁用)某些方法仅用于"新"代码?

.net c# obsolete

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

在if语句条件中声明并赋值变量,在语句体中重用

我不能真正地说出问题的标题.无论如何,说我有一个声明如下:

if(myObject.SomeMethod() != null)
{
    DoSomethingWith(myObject.SomeMethod());
}
Run Code Online (Sandbox Code Playgroud)

我想避免双重打电话SomeMethod().理想情况下,模式匹配的东西如下:

if(myObject.SomeMethod() result != null)
{
    DoSomethingWith(result);
}
Run Code Online (Sandbox Code Playgroud)

语言中有什么可以帮助我吗?目前,我的选择是:

var result = myObject.SomeMethod();
if(result != null)
{
    DoSomethingWith(result);
}
Run Code Online (Sandbox Code Playgroud)

我知道上面的方法没有错,这是非常规范的.简单地说,最近语言中添加了很多语法糖,这使得我们可以大量压缩我们的代码:我问,因为我不知道是否有什么东西可以阻止if(myObject.SomeMethod() result != null)工作.

c#

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