小编Mik*_*nry的帖子

如何将NUnit作为ASP.NET MVC的测试框架选项添加到Visual Web Developer 2008 Express?

根据Professional ASP.NET MVC 1.0,第8页,"如果您使用的是VS 2008 Standard Edition或Visual Web Developer 2008 Express,则需要下载并安装ASP.NET MVC的NUnit,MBUnit或XUnit扩展,以便[将显示"创建单元测试项目"对话框."

是否有可以下载NUnit 2.4.8的扩展名?如果是这样我可以从哪里下载?

如果没有,我该如何设置?我查看了ASP.Net MVC和nUnit问题以及文章如何:在Visual StudioASP.NET MVC测试框架集成演练中添加自定义MVC测试框架.但它们都指的devenv /setup是Visual Web Developer 2008 Express似乎没有的运行.是否有人使用NUnit和VWD Express创建了"创建单元测试项目"对话框?怎么会这样?

谢谢

asp.net-mvc nunit vwdexpress

19
推荐指数
3
解决办法
7583
查看次数

什么是COM Interop的通用集合的替代品?

我试图从.NET程序集返回一系列部门,以便通过COM Interop使用ASP.使用.NET我会返回一个通用集合,例如List<Department>,但似乎泛型不适用于COM Interop.那么,我的选择是什么?

我想迭代列表并能够通过索引访问项目.我应该继承List<Department>,实施IList,IList<Department>或另一个接口,或者是有没有更好的办法?理想情况下,我不希望为我需要的每种类型的列表实现自定义集合.此外,List[index]甚至可以使用COM Interop?

谢谢,迈克

示例.NET组件(C#):

public class Department {
    public string Code { get; private set; }
    public string Name { get; private set; }
    // ...
}

public class MyLibrary {
    public List<Department> GetDepartments() {
        // return a list of Departments from the database
    }
}
Run Code Online (Sandbox Code Playgroud)

示例ASP代码:

<%
Function PrintDepartments(departments)
    Dim department
    For Each department In departments
        Response.Write(department.Code & ": " & department.Name & "<br />")
    Next …
Run Code Online (Sandbox Code Playgroud)

.net generics collections com-interop asp-classic

10
推荐指数
2
解决办法
6538
查看次数

为什么我的.NET组件上的索引器并不总是可以从VBScript访问?

我有一个.NET程序集,我通过COM互操作从VBScript(经典ASP)访问.一个类有一个索引器(也就是默认属性),我通过向索引器添加以下属性来从VBScript开始工作:[DispId(0)].它在大多数情况下都有效,但在作为另一个对象的成员访问类时却不行.

我怎样才能得到它的语法如下工作:Parent.Member("key")其中成员具有索引(类似访问的默认属性内置Request.QueryString:Request.QueryString("key"))?

在我的例子中,有一个父类TestRequest具有QueryString返回an 的属性,该属性IRequestDictionary具有默认的索引器.

VBScript示例:

Dim testRequest, testQueryString
Set testRequest = Server.CreateObject("AspObjects.TestRequest")
Set testQueryString = testRequest.QueryString
testQueryString("key") = "value"
Run Code Online (Sandbox Code Playgroud)

以下行导致错误而不是打印"值".这是我想要工作的语法:

Response.Write(testRequest.QueryString("key"))
Run Code Online (Sandbox Code Playgroud)

Microsoft VBScript运行时(0x800A01C2)
参数数量错误或属性赋值无效:'QueryString'

但是,下面的线的工作没有错误和输出了预期的"值"(请注意,第一行访问的临时变量的默认索引):

Response.Write(testQueryString("key"))
Response.Write(testRequest.QueryString.Item("key"))
Run Code Online (Sandbox Code Playgroud)

下面是C#2.0中的简化接口和类.他们已通过RegAsm.exe /path/to/AspObjects.dll /codebase /tlb以下方式注册:

[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IRequest {
    IRequestDictionary QueryString { get; }
}

[ClassInterface(ClassInterfaceType.None)]
public class TestRequest : IRequest {
    private IRequestDictionary _queryString = new RequestDictionary();

    public IRequestDictionary QueryString {
        get { return …
Run Code Online (Sandbox Code Playgroud)

.net c# vbscript com-interop

7
推荐指数
2
解决办法
2637
查看次数

在.NET中旋转JPEG,质量损失最小

我试图支持从ASP.NET MVC旋转JPEG图像(以90度为增量).我试图使用System.Drawing(GDI +),但是我遇到了问题.

我尝试使用Image.RotateFlip哪种能够旋转图像,但会导致质量下降.即使编码器质量为100,旋转图像上仍然存在可见的伪像,这些伪像不在原始图像上,也不会在我使用其他程序(Gimp等)旋转时出现.

using (Image image = Image.FromFile("C:\\source.jpg")) {
    ImageFormat sourceFormat = image.RawFormat;
    image.RotateFlip(RotateFlipType.Rotate90FlipNone);
    EncoderParameters encoderParams = null;
    try {
        if (sourceFormat == ImageFormat.Jpeg) {
            encoderParams = new EncoderParameters(1);
            encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, 100L);
        }
        image.Save("C:\\target.jpg", GetEncoder(sourceFormat), encoderParams);
    } finally {
        if (encoderParams != null)
            encoderParams.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现了一篇关于转换JPEG而不会丢失信息的文章.使用Encoder.Transformation似乎是.NET中的一个选项 - 但是我不能让它导致我的任何JPEG测试图像完全旋转,无论尺寸是16的倍数.

using (Image image = Image.FromFile("C:\\source.jpg")) {
    ImageFormat sourceFormat = image.RawFormat;
    EncoderParameters encoderParams = null;
    try {
        if (sourceFormat == ImageFormat.Jpeg) …
Run Code Online (Sandbox Code Playgroud)

.net jpeg image-processing

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

是否可以使用PHPUnit @depends而不在相关案例之间调用tearDown和setUp?

例如,该操作在test1外部存储数据*test2然后执行断言,但tearDown删除该数据从而中断test2.无法删除缓存删除,tearDown因为其他测试依赖于它.这个问题是询问是否有办法在保持功能的同时跳过依赖情况之间的setUp/tearDown @depends(如果第一次测试失败而不是第二次测试失败,则跳过第二次测试).

public function tearDown() {
    // delete cache
}

// verify the expected data was retrieved from an uncached source
public function test1() {
    $sut = new SystemUnderTest();
    $data = $sut->getDataAndCache();
    $this->assertEquals('expected', $data);
    return $sut;
}

// verify the expected data was cached
/** @depends test1 */
public function test2($sut) {
    $this->assertEquals('expected', $sut->getCache());
}
Run Code Online (Sandbox Code Playgroud)

*我们称之为集成测试,因为它们与外部系统交互.

php phpunit

7
推荐指数
2
解决办法
2557
查看次数

Task.Run应该如何在VB.NET中调用异步方法?

给定一个同时执行CPU和IO工作的异步方法,例如:

Public Async Function RunAsync() As Task
    DoWork()
    Await networkStream.WriteAsync(buffer, 0, buffer.Length).ConfigureAwait(False)
End Function
Run Code Online (Sandbox Code Playgroud)

以下哪个选项是从Visual Basic中的Task.Run调用该异步方法的最佳方法,为什么?

哪个是C#的VB等价物Task.Run(() => RunAsync())

Await Task.Run(Function() RunAsync())
' or
Await Task.Run(Sub() RunAsync())
Run Code Online (Sandbox Code Playgroud)

Task.Run中的Async/Await关键字是必要还是冗余?该评论声称它们是多余的,但这个答案表明在某些情况下可能是必要的:

Await Task.Run(Async Function()
                   Await RunAsync()
               End Function)
Run Code Online (Sandbox Code Playgroud)

ConfigureAwait在Task.Run中是否有用?

Await Task.Run(Function() RunAsync().ConfigureAwait(False))

Await Task.Run(Async Function()
                   Await RunAsync().ConfigureAwait(False)
               End Function)
Run Code Online (Sandbox Code Playgroud)

以上哪5个Task.Run选项是最佳实践?

注意:有一个类似的问题如何在Task.Run中调用异步方法?但它适用于C#,所选答案具有否定投票,并且不涉及ConfigureAwait.

vb.net async-await

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