小编Ste*_*unn的帖子

删除Windows Installer项目中横幅中的文本

我正在使用标准的Visual Studio部署项目,并希望删除横幅中的文本(文本中显示"欢迎使用您的项目安装向导").

我想删除它,因为我想要一个自定义横幅,不希望文本写在横幅上.

我在VS中看不到任何属性允许这样做.可以在没有.MSI的刺激下完成吗?

干杯,

史蒂夫

deployment installer windows-installer

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

WPF在容器之间拖放

我有一个容器,比如Grid.它有两个容器,比如StackPanels.

StackPanel#1有一些矩形.什么是让用户拖动矩形并将其放入StackPanel#2(并使该矩形成为StackPanel#2的子项)的最佳方法.

我有一个拖拽位 - 唯一不清楚的是是否实际使用容器或只是在直板上手动处理所有矩形.

wpf user-interface controls drag-and-drop

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

从测试覆盖率中排除代码

我尽可能使用 TDD:

  • 我模拟了我的界面
  • 我使用 IOC,因此可以注入我的模拟对象
  • 我确保我的测试运行并且覆盖率增加,我很高兴。

然后...

  • 我创建派生类来实际执行某些操作,例如访问数据库或写入消息队列等。

这就是代码覆盖率下降的地方——我感到很难过。

但是,我自由地扩展[CoverageExclude]了这些具体的类,覆盖率再次上升。

但是,我没有感到悲伤,而是感到肮脏。尽管无法对具体类进行单元测试,但我还是觉得自己在作弊。

我感兴趣的是听你的项目是如何组织的,也就是你怎么安排实际的代码可以对代码进行测试无法进行测试。

我想也许一个不错的解决方案是将不可测试的具体类型分离到它们自己的程序集中,然后禁止在[CoverageExclude]包含可测试代码的程序集中使用。当在可测试程序集中错误地找到此属性时,这也可以更轻松地创建 NDepend 规则以使构建失败。


编辑:这个问题的本质涉及这样一个事实,即您可以测试使用模拟接口的东西,但您不能(或不应该!)对那些接口的真实实现的对象进行单元测试。下面是一个例子:

public void ApplyPatchAndReboot( )
{ 
    _patcher.ApplyPatch( ) ;
    _rebooter.Reboot( ) ;
}
Run Code Online (Sandbox Code Playgroud)

修补程序和重启程序被注入到构造函数中:

public SystemUpdater(IApplyPatches patcher, IRebootTheSystem rebooter)...
Run Code Online (Sandbox Code Playgroud)

单元测试看起来像:

public void should_reboot_the_system( )
{
    ... new SystemUpdater(mockedPatcher, mockedRebooter);
    update.ApplyPatchAndReboot( );
}
Run Code Online (Sandbox Code Playgroud)

这很好用 - 我的 UNIT-TEST 覆盖率为 100%。我现在写:

public class ReallyRebootTheSystemForReal : IRebootTheSystem
{
    ... call some API to really (REALLY!) reboot
}
Run Code Online (Sandbox Code Playgroud)

我的 UNIT-TEST 覆盖率下降,无法对新课程进行 UNIT-TEST。当然,我会添加一个功能测试并在我有 …

tdd unit-testing mocking inversion-of-control

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

我们应该在每次成功的CI构建之后标记我们的SVN回购吗?

SVN中的标签很便宜.它们是否足够便宜,使我们能够标记从CI框中弹出的每个成功构建(TeamCity,如果这有什么不同)?

svn version-control teamcity continuous-integration

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

如何在MonoGame中获取基础窗口?

我正在将Gleed2D从XNA 转换为MonoGame.

Gleed2D是一个实例化的Windows窗体应用程序XnaGame.在window由创建Game然后被隐藏和DeviceWindowHandle被设定为的Canvas主窗体上.

我知道这有点拗口; 代码说明了一切:在这里它是完整的.
相关位在构造函数中:

            _drawSurface = mainForm.GetHandleToCanvas();
            _graphics = new GraphicsDeviceManager( this )
            {
                PreferredBackBufferWidth = 800,
                PreferredBackBufferHeight = 600
            } ;

        _graphics.PreparingDeviceSettings += graphics_PreparingDeviceSettings;

        _winform = (Form)Form.FromHandle(Window.Handle);

        _winform.VisibleChanged += game1VisibleChanged;
        _winform.Size = new Size(10, 10);

        Mouse.WindowHandle = _drawSurface;

        Size pictureBoxSize = _mainForm.CanvasSize ;

        ResizeBackBuffer( pictureBoxSize.Width, pictureBoxSize.Height ) ;

                    ... some other stuff....


    void graphics_PreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e)
    {
        e.GraphicsDeviceInformation.PresentationParameters.DeviceWindowHandle = …
Run Code Online (Sandbox Code Playgroud)

xna opentk monogame

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

printf会导致未定义的行为吗?

int main() 
{
  unsigned int i = 12;
  printf("%lu", i); // This yields a compiler warning
}
Run Code Online (Sandbox Code Playgroud)

在32位平台上,使用printfint使用%lu结果垃圾吗?

c c++

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

MVVM - 控件与视图

我一直在WPF中做原型而不使用MVVM.现在它已经达到了这么大,我正在重构它以使用MVVM.

当我开始这个项目时,我直接跳了进来为很多事情创建了UserControls.

我现在在Views和ViewModels中破坏了东西.但是,我最终得到的包含UserControls的视图; UserControls绑定到模型中现在的对象.

那么,UserControls的概念现在已经死在MVVM中吗?我的意思是,在过去(WinForms,ASP.NET等),你有一个名为'Controls'的项目并重用它们.MVVM中的"视图"是否直接替代典型的UserControl?

silverlight wpf design-patterns mvvm viewmodel

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

如何判断我的`IDisposable`类型没有明确处理?

这是很难找到在设计/编译是那些没有正确地放置了IDisposable,但时间类型.在运行时有哪些方法可以找到它们?

.net garbage-collection

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

为什么C#7.2功能无法在UWP应用程序中编译?

...特别是in(readonly ref)参数.这是我的情况:

我在同一个Visual Studio解决方案中有一个UWP项目和一个UWP单元测试项目.两个项目都以C#7.2为目标.主要的UWP项目有这个类(注意in参数):

public struct Cell
{
    public Cell(int x, int y)
    {
        X = x;
        Y = y;
    }

    public int X { get; }

    public int Y { get; }

    public static Cell operator +(in Cell left, in Cell right)
    {
        return new Cell(left.X + right.X, left.Y + right.Y);
    }

    public static Cell operator -(in Cell left, in Cell right)
    {
        return new Cell(left.X - right.X, left.Y - right.Y);
    }


    public …
Run Code Online (Sandbox Code Playgroud)

c# uwp c#-7.2 in-parameters

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

FromQueryAttribute 实际上是如何工作的以及为什么我需要它?

我正在使用一些预先存在的代码,这些代码使用 HttpGet 端点来获取所有评论。它需要一些默认参数,并且在每个参数之前都用一个[FromQuery]属性进行修饰。我有点困惑为什么我们需要这个以及它对我真正有什么作用。

我在网上找到的只有这个文档:(https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.fromqueryattribute?view=aspnetcore-2.2

但这并不能回答我的问题......

  • 什么是查询字符串?
  • 它如何在端点中使用?
  • 什么时候我不需要指定这个属性?我认为它的使用不多。
[HttpGet]
[ProducesResponseType(typeof(FooResponse), 200),
public async Task<ActionResult<FooResponse>> GetAll([FromQuery]string sortColumn = "CommentId",
    [FromQuery]SortDirections sortDirection = SortDirections.Asc, 
    [FromQuery]string filter = "", 
    [FromQuery]int page = 1, 
    [FromQuery]int pageSize = 10)
{
    var data = await _mediator.Send(new GetAllComments(sortColumn, sortDirection, filter, page, pageSize));
.
.
.
    return Ok(data);
}
Run Code Online (Sandbox Code Playgroud)

我怀疑它与传递到 URL 的内容有关,但我不太确定......

c# asp.net-mvc .net-core asp.net-core

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