小编Jac*_*ope的帖子

我应该如何使用C#和NUnit对单元测试进行分组?

我有一个在C#中使用大量单元测试的类(使用NUnit 2.5.8),我想根据我正在测试的类功能区域将单元测试组合在一起(所以我可以快速选择哪个设置为在NUnit UI中运行).

我知道我可以将类重构为更小的组件,这可以解决问题,但有没有其他方法可以做到这一点,而无需完全重新设计生产代码?

c# nunit unit-testing

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

如何在wpf中将图片保存在图像控件上?

我有一个简单的wpf应用程序WIA.我的应用程序有一个图像控件...我想知道如何将扫描的图片保存在我的硬盘上?

wpf wpf-controls c#-4.0

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

C#Console应用程序未调用finally块

我正在编写一个控制台应用程序作为计划任务运行,当您使用关闭按钮关闭它时,它似乎不执行正在运行的代码的finally块.我尝试使用以下非常简单的控制台应用程序复制此行为:

using System;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Thread.Sleep(60000);
            }
            finally
            {
                Console.WriteLine("Finally");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当通过调试器运行时,这不会在该Console.WriteLine行上遇到断点.我不确定这个简单的测试是否按预期工作,或者为什么finally块似乎不会在此测试或我的生产代码中运行.

我认为最后块总是运行(这不是它们的全部意义吗?).这里发生了什么?

c# console-application try-finally

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

两个视图引用相同的视图模型

我正在使用两个视图,它们引用相同的视图模型.我的两个视图都包含一个绑定到视图模型中的值的文本框.我的问题是,如果我在一个GUI中更改文本框的值,它不会反映在另一个GUI中.我该怎么做才能做到这一点?

这是我的视图模型

    public class ProductViewModel:INotifyPropertyChanged
    { 
        private int machineheight;

        #region INotifyPropertyChanged Members

        public event PropertyChangedEventHandler PropertyChanged;
        private void RaisePropertyChanged(string propertyName)
        {

            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
        #endregion

        public int MachineHeight
        {
            get
            {
                return this.machineheight;
            }
            set
            {
                this.machineheight = value;
                RaisePropertyChanged("MachineHeight");
            }
        }

        public ProductViewModel()
        {
        }

        private ICommand mUpdater;
        public ICommand UpdateCommand
        {
            get
            {
                if (mUpdater == null)
                    mUpdater = new Updater();
                return mUpdater;
            }
            set
            {
                mUpdater = value;
            }
        } …
Run Code Online (Sandbox Code Playgroud)

c# mvvm

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

更换文件后,TFS无法检入更改

我正在重写一个同事做过原型版的Asp.Net项目.我删除了Default.aspx并创建了新的,现在我正在尝试检查新版本.

当我尝试检查挂起的更改时,我得到了标准:

签入,由于更改冲突而没有签入文件.请使用冲突频道解决冲突,然后重试.

我被重定向到Pending Changes - Conflicts选项卡,在那里我看到了以下选项:'Take Server Version''Keep Local Version'.

如果我点击'Keep Local Version',我收到以下错误:

错误,遇到以下异常.项目$/ProjectName/Default.aspx已经有挂起的更改.

如何让它接受我的新版本文件?

tfs

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

WPF tabControl重新排序选项卡

我想在使用C#时重新排序WPF选项卡控件

c# wpf

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

圆形括号在WPF中的RightToLeft流向上未正确显示

我的WPF窗口中的流向设置为RightToLeft,如下所示:

<TextBlock FlowDirection="RightToLeft" x:Name="test">
Run Code Online (Sandbox Code Playgroud)

在代码中如果我这样做,test.Text = "(2/3)";我明白了

(2/3)

但如果我这样做,test.Text = "asdf (2/3)";我明白了

(asdf(2/3

这里发生了什么?为什么用字符串开始文本会改变括号的位置?

.net globalization wpf localization right-to-left

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

我可以用Linq-to-SQL做一个非常大的插入吗?

我有一些文本数据,我使用这种方法使用Linq-to-SQL加载到SQL Server 2005数据库中(伪造代码):

Create a DataContext

While (new data exists)
{
    Read a record from the text file

    Create a new Record 

    Populate the record

    dataContext.InsertOnSubmit(record);
}

dataContext.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

代码是一个小C#控制台应用程序.到目前为止这个工作正常,但我要导入真实数据(而不是测试子集),这包含大约200万行而不是我测试过的1000行.我是否必须做一些聪明的批处理或类似的事情,以避免代码崩溃或表现糟糕,或者Linq-to-SQL应该优雅地处理这个问题?

c# sql-server-2005 linq-to-sql

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

如何使WPF Listbox子datatemplate控件在单击时选择ListBoxItem容器?

我有一个列表框,在datatemplate中我有一个Expander.

如果我单击Expander Header,扩展器将展开内容区域,但不会使父ListBoxItem选中.

如果我单击Expander的Expanded Content Zone,则会选择父ListBoxItem.

单击expandderHeader时如何使内容扩展并且父列表框项被选中?

.net wpf listbox listboxitem childcontrol

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

c#文件移动(文件已被其他进程使用)

我将文件从一个文件夹移动到另一个文件夹.如果我尝试将整个文件夹移动到该特定文件夹中的文件夹,我就无法这样做.但如果我把它移到外面就可以了.如何将文件夹移动到该文件夹​​中的文件夹?

这给出了错误

  if (System.IO.Directory.Exists(PhysicalPath))
 {
      string sourcePath = "c:\\copypath\\";
      string targetPath = "c:\\copypath\\abc\\";
      System.IO.Directory.Move(sourcePath, targetPath);
 }
Run Code Online (Sandbox Code Playgroud)

这很好用

 if (System.IO.Directory.Exists(PhysicalPath))
 {
      string sourcePath = "c:\\copypath\\";
      string targetPath = "c:\\abc\\";
      System.IO.Directory.Move(sourcePath, targetPath);
 }
Run Code Online (Sandbox Code Playgroud)

c#

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

java是否递归执行GC?

可能这是一个愚蠢的问题.
当一个对象被标记为垃圾收集时,java是否也标记了所包含的垃圾回收对象?

我的意思是,

class ContainerClass {
    ContainedClass obj1, obj2;  
    //Constructor
    ContainerClass() {
    obj1 = new ContainedClass ();
    obj2 = new ContainedClass ();
    }
  // main
    public static void main( String args[]) {
        ContainerClass  c = new ContainerClass();
        c = null ; // c is mared for GC. The question is c.obj1 and c.obj2 is also marked?
    }   
}
Run Code Online (Sandbox Code Playgroud)

java garbage-collection

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

如何在单元测试时删除对第三方代码的依赖性?

我有一些代码执行一些遗留的"数据库"操作,然后处理结果.我想编写一个单元测试来检查调用遗留代码的方法,而不与"数据库"交互.

我的代码看起来像这样:

    public static bool CallRoutine(LegacySession session, /* routine params*/)
    {
        try
        {
            LegacyRoutine routine = session.CreateRoutine(/* routine params */);

            routine.Call();

            // Process result

        }
        catch (LegacyException ex)
        {
            // Perform error handling
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果这是我的所有代码,我将创建接口,然后使用MOQ或类似的东西创建LegacySessionLegacyRoutine使用这些接口的模拟实现来编写单元测试.问题是,我没有访问代码,LegacyRoutine或者LegacySession,所以我不能让他们实现一个接口.

关于如何在不改变生产代码的情况下做到这一点的任何想法?

c# dependencies nunit unit-testing

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

将字符串转换为数字?

我有一个像"3.9"的字符串我想将此字符串转换为数字而不使用拆分函数.

如果string是3.9 => o/p 39

如果string是1.2.3 => o/p 123

c# string

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