小编Ric*_*ick的帖子

如何最好地使用文件版本和汇编版本?

在.NET中,构建项目时可以使用两个版本号,即文件版本和汇编版本.你是如何使用这些数字的?保持不变?自动递增一个,但手动更改另一个?

那个AssemblyInformationalVersion属性呢?

我发现这个支持Microsoft知识库(KB)的文章提供了一些帮助: 如何使用汇编版本和汇编文件版本.

.net attributes versions

55
推荐指数
5
解决办法
3万
查看次数

查找用于UI的命令模式的示例

我正在使用WinForm .Net应用程序,其基本UI包括工具栏按钮,菜单项和按键,它们都启动相同的底层代码.现在,每个事件的事件处理程序调用执行该函数的常用方法.

根据我的阅读,这种类型的操作可以由Command设计模式处理,还具有自动启用/禁用或检查/取消选中UI元素的额外好处.

我一直在网上寻找一个很好的示例项目,但实际上还没有找到一个.有没有人有一个可以分享的好榜样?

.net command design-patterns

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

如何根据最终用户配置值解析类型?

我有一个具有多个实现的接口(称为IAcmeService).

FileSystemAcmeService
DatabaseAcmeService
NetworkAcmeService
Run Code Online (Sandbox Code Playgroud)

最终用户需要能够选择将使用哪种实现,并保存该选择.

目前我正在配置我的IOC容器(Unity)以使用名称注册所有已知的实现.

container.RegisterType(of IAcmeService, FileSystemAcmeService)("FileSystemAcmeService")
container.RegisterType(of IAcmeService, DatabaseAcmeService)("DatabaseAcmeService")
container.RegisterType(of IAcmeService, NetworkAcmeService)("NetworkAcmeService")
Run Code Online (Sandbox Code Playgroud)

为了允许用户保存他们的选择,我有app.config配置部分文件,用于存储要使用的所选服务名称.

要解决所选的实现,我正在使用该服务的类的Initialize方法中进行手动解析.

Private _service as IAcmeService
Public Sub Initialize()
    _service = container.Resolve(of IAcmeService)(_config.AcmeServiceName)
End Sub
Run Code Online (Sandbox Code Playgroud)

这似乎不对,因为我的班级必须知道容器.但我无法想出另一种方式.

是否有其他方法可以让最终用户选择而不让班级知道容器?

dependency-injection unity-container

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

使用NUnit与ASP.NET WebApi控制器执行集成测试

我正在尝试使用NUnit设置测试来执行ASP.NET WebApi控制器的一些集成测试.我发现有几篇文章讨论使用HttpServer进行内存托管,这似乎可以通过不需要托管所有内容的Web服务器来简化操作.

问题是我得到的唯一回应是404-Not Found.

通过浏览器或Fiddler手动测试时,控制器正在工作.路径定义是从工作站点复制的.api项目由测试项目引用,并且dll将被复制到与测试相同的文件夹中.

提前致谢.

这是测试类

[TestFixture]
public class InMemoryTests
{
    private HttpServer Server;
    private string UrlBase = "http://some.server/";

    [TestFixtureSetUp]
    public void Setup()
    {

        var config = new HttpConfiguration();
        config.Routes.MapHttpRoute(name: "Default", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional });
        config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

        Server = new HttpServer(config);
    }

    [Test]
    public void GetOrderStatus()
    {
        var client = new HttpClient(Server);
        var request = createRequest("api/Orders/GetOrderStatus?companyCode=001&orderNumber=1234", "application/json", HttpMethod.Get);

        using (HttpResponseMessage response = client.SendAsync(request).Result)
        {
            Assert.IsNotNull(response);
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); …
Run Code Online (Sandbox Code Playgroud)

.net nunit asp.net-web-api

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

如何使用CruiseControl.net基于Subversion修订号设置内部版本号

可能重复:
使用SVN Revision在CCNET中标记构建

我正在完成安装CruiseControl.net并转换Msbuild脚本以使用它的过程.我希望我们的内部版本号能够反映Subversion版本号.似乎LastChangeLabeller应该可以工作,但我得到的只是"未知".

我的最终目标是既具有版本号(递增1)和颠覆修订格式化版本号.但是现在我已经满足了修订号.

澄清:我正在尝试更新CruiseControl.Net内部版本号.不只是编译结果中的版本号.

svn cruisecontrol.net msbuild

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