小编Luk*_*sik的帖子

MSBuild的路径

我如何以编程方式从运行.exe的机器获取MSBuild的路径?

我可以从环境中获取.NET版本但是有没有办法为.NET版本获取正确的文件夹?

.net msbuild

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

C#从基类隐藏,覆盖和调用函数

我正在学习C#,我遇到了以下问题.我有两个类:base和derived:

class MyBase
{
    public void MyMethod()
    {
        Console.WriteLine("MyBase::MyMethod()");
    }
}


class MyDerived: MyBase
{
    public void MyMethod()
    {
        Console.WriteLine("MyDerived::MyMethod()");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,没有virtualoverride关键词.当我编译它时,我得到警告(当然是预期的)我试图隐藏MyMethodMyBase课堂上.

我想要做的是从具有派生类实例的基类调用该方法.我是这样做的:

MyDerived myDerived = new MyDerived();
((MyBase)myDerived).MyMethod();
Run Code Online (Sandbox Code Playgroud)

当我没有virtual在方法中指定任何等关键字时,它工作正常.我试着把关键字组合起来,得到了以下结果:

| MyBase::MyMethod | MyDerived::MyMethod | Result printed on the console |
| -----------------|---------------------|-------------------------------|
| -                | -                   | MyBase::MyMethod()            |
| -                | new                 | MyBase::MyMethod()            |
| virtual          | new                 | MyBase::MyMethod()            |
| virtual          | override            | …
Run Code Online (Sandbox Code Playgroud)

c# inheritance overriding base member-hiding

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

通用Type参数没有装箱或类型参数转换

我有以下帮助方法:

public static T CreateRequest<T>()
    where T : Request, new()
{
    T request = new T();
    // ...
    // Assign default values, etc.
    // ...
    return request;
}
Run Code Online (Sandbox Code Playgroud)

我想从另一个帮助器中的另一个方法内部使用此方法:

public T Map<F, T>(F value, T toValue)
    where T : new()
    where F : new()
{
    if (typeof(T).BaseType.FullName == "MyNamespace.Request")
    {
        toValue = MyExtensions.CreateRequest<T>();
    }
    else
    {
        toValue = new T();
    }
}
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误:

类型'T'不能用作泛型类型或方法'MyExtensions.CreateRequest()'中的类型参数'T'.从'T'到'MyNamespace.Request'没有装箱转换或类型参数转换.

有没有办法转换类型"T",以便CreateRequest将使用它没有问题?

编辑:

我知道我可以做两件事:

  • 放宽对CreateRequest的约束或
  • 收紧地图中的约束.

但我不能做第一个,因为在CreateRequest中我是Request类的用户属性,而我不能做第二个,因为我使用其他类型(不从Request继承)和Map函数.

c# types casting

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

SVN - 如何将trunk中的更改应用于所有分支

我是SVN的初学者.我有这样的SVN目录结构:

|-trunk
  |-file1.php
  |-file2.php
|-branches
  |-branch_1
    |-file1.php
    |-file2.php
  |-branch_2
    |-file1.php
    |-file2.php
Run Code Online (Sandbox Code Playgroud)

在后台我有我的应用程序的主要版本.我有两个分支用于不同的客户端,仅在某些文件中有修改.当我发现一些核心错误时,我将它固定在trunk中.比如我修改了file1.phptrunk目录中.我想对file1.php所有分支中指定的文件应用更改.

我有点困惑.在使用Subversion版本控制中,我找到了以下解释.

Subversion的存储库有一个特殊的设计.复制目录时,您不必担心存储库增长巨大 - Subversion实际上并不复制任何数据.相反,它会创建一个指向现有树的新目录条目.

所以我虽然当我在文件中提交更改时,trunk\file1.php它将自动应用于其他file1.php文件,因为我没有对branches目录中的文件进行任何更改.

如何将trunk目录中的更改应用到所有分支?我试图这样使用svn merge:

svn merge -r 31:32 http://mysvnserver.com/project/branches/branch_1
Run Code Online (Sandbox Code Playgroud)

但我没有做任何更改(svn diff -r 31:32返回我所做的所有更改.)

svn merge

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

PHPUnit - 使用$ _POST变量测试MVC控制器

我正在和Kohana一起开始使用PHPUnit.我的应用程序有许多控制器,它只是从某种形式获取数据,验证和插入/更新/删除到/ - /从数据库.我应该如何为此编写测试用例.

我知道如果我想测试一个函数,我会编写数据提供程序函数,只是将返回值与预期函数进行比较.但我的输入数据(来自表单的数据)正在$_POST变量中传递.我该怎么测试呢?之后,我应该检查插入的数据是否真的在数据库中?请给出我对这类测试的一些指导或链接到一些示例/教程.谢谢.

php post phpunit controller kohana

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

SpecFlow - 是否可以在功能文件中重用测试数据?

有没有办法在SpecFlow功能文件中重用数据?例如,我有两个场景,它们都使用相同的数据表:

Scenario: Some scenario 1
  Given I have a data table
     | Field Name | Value |
     | Name       | "Tom" |
     | Age        |  16   |
  When ...

Scenario: Some scenario 2
  Given I have a data table
     | Field Name | Value |
     | Name       | "Tom" |
     | Age        |  16   |
  And I have another data table
     | Field Name | Value     |
     | Brand      | "Volvo"   |
     | City       |  "London" |
  When ...
Run Code Online (Sandbox Code Playgroud)

在这些简单的例子中,表格很小并且没有大问题,但在我的情况下,表格有20多行,每个表格至少用于5次. …

cucumber specflow

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

导出结构和数据(如PhpMyAdmin)

我想使用PHP从MySQL数据库导出数据和结构.我知道SELECT INTO OUTFILE命令,但我想让文件像在导出窗口中由PhpMyAdmin生成的文件,所以所有CREATE TABLEINSERT INTO.

你知道PhpMyAdmn如何生成这些文件吗?我正在浏览代码,我在其中找到了命令SELECT INTO OUTFILE.但是我不确定这个命令是用来生成那个结构的.是否有其他命令可以执行此操作,或者使用有关表模式的信息手动创建导出的文件?

php mysql export phpmyadmin

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

使用WebHandler的HTTPHandler和IsReusable

我有可重用HTTPHandler的问题.我想查看该IsReusable物业是如何运作的.所以我创建了两个处理程序:

可重复使用:

public class ReusableHandler : IHttpHandler
{
    public bool IsReusable
    {
        get { return true; }
    }

    private int _counter;

    public ReusableHandler()
    {
        _counter = 0;
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.Write("Reusable: " + _counter++);
    }

}
Run Code Online (Sandbox Code Playgroud)

而不是可重复使用的:

public class NonReusableHandler : IHttpHandler
{
    public bool IsReusable
    {
        get { return false; }
    }

    private int _counter;

    public NonReusableHandler()
    {
        _counter = 0;
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.Write("NonReusable: " + _counter++);
    }

}
Run Code Online (Sandbox Code Playgroud)

它们都按预期工作:每次返回递增值时可重用,而NonReusable每次返回0.但是当我使用我的处理程序作为WebHandlers(*.ashx)时,它们每次都返回0(代码完全相同).这是否意味着当我使用WebHandlers时,该 …

asp.net httphandler

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

检查扩展是否应用于observable

我想单元测试我的函数,它基本上从一组参数(TypeScript代码)构建一个observable数组:

private BuildObservables(parameters: Parameter[]) {
        var observables = {};

        for (var parameterName in parameters) {

            var p = parameters[parameterName];

            // Build observable
            observables[parameterName] = ko.observable(p.Value);

            // Attach validation
            if (p.IsRequired) {
                observables[parameterName].extend({ required: true });
            }
        }
        return observables;
    }
Run Code Online (Sandbox Code Playgroud)

我的测试看起来像这样:

var parameters = [];

// new Parameter(int value, bool isRequired)
parameters["Param1"] = new Parameter("123", true);
parameters["Param2"] = new Parameter("456", false);

var viewModel = BuildObservables(parameters);

ok(viewModel["Param1"] != null);
ok(viewModel["Param2"] != null);
Run Code Online (Sandbox Code Playgroud)

如果第一个参数isRequired设置为true,如何检查是否应用了扩展(验证)(BuildObservables中的"附加验证"部分)?

编辑:

在另一个功能我附加订阅者,我不知道如何测试他们是否正确附加.

knockout.js knockout-validation knockout-extensions

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

简单的ASP.NET应用程序示例(没有Web窗体和MVC)

对于许多开发人员来说ASP.NET和ASP.NET Web Forms是相同的东西.有一段时间我一直在使用Web窗体,但最近我了解到Web窗体只构建在ASP.NET之上.我更好奇一个简单的ASP.NET应用程序是如何看起来的.我学习了3种ASP.NET编程模型:Web表单,Web页面和MVC(这里 Scott Hanselman简要解释了这些差异).但它仍然认为所有3种方法都位于ASP.NET之上.

我试图找到一个使用纯ASP.NET的示例应用程序,但我找不到任何东西.

我开始深入研究ASP.NET网页的源代码,我发现每个网页实际上都是HTTP Handler(每个页面都实现了IHTTPHandler接口).这是否意味着纯ASP.NET应用程序只是一个HTTP Handler实现?或者我错过了什么.

在我的理解中,ASP.NET Web窗体对应于桌面世界中的Win Forms.但在桌面世界中,您仍然可以编写不使用Win Forms的控制台应用程序.那么网络世界中的控制台应用程序是什么呢?

任何评论或参考赞赏.提前致谢.

asp.net

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