我有一个在C#中使用大量单元测试的类(使用NUnit 2.5.8),我想根据我正在测试的类功能区域将单元测试组合在一起(所以我可以快速选择哪个设置为在NUnit UI中运行).
我知道我可以将类重构为更小的组件,这可以解决问题,但有没有其他方法可以做到这一点,而无需完全重新设计生产代码?
我有一个简单的wpf应用程序WIA.我的应用程序有一个图像控件...我想知道如何将扫描的图片保存在我的硬盘上?
我正在编写一个控制台应用程序作为计划任务运行,当您使用关闭按钮关闭它时,它似乎不执行正在运行的代码的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块似乎不会在此测试或我的生产代码中运行.
我认为最后块总是运行(这不是它们的全部意义吗?).这里发生了什么?
我正在使用两个视图,它们引用相同的视图模型.我的两个视图都包含一个绑定到视图模型中的值的文本框.我的问题是,如果我在一个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) 我正在重写一个同事做过原型版的Asp.Net项目.我删除了Default.aspx并创建了新的,现在我正在尝试检查新版本.
当我尝试检查挂起的更改时,我得到了标准:
签入,由于更改冲突而没有签入文件.请使用冲突频道解决冲突,然后重试.
我被重定向到Pending Changes - Conflicts选项卡,在那里我看到了以下选项:'Take Server Version'或'Keep Local Version'.
如果我点击'Keep Local Version',我收到以下错误:
错误,遇到以下异常.项目$/ProjectName/Default.aspx已经有挂起的更改.
如何让它接受我的新版本文件?
我的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
这里发生了什么?为什么用字符串开始文本会改变括号的位置?
我有一些文本数据,我使用这种方法使用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应该优雅地处理这个问题?
我有一个列表框,在datatemplate中我有一个Expander.
如果我单击Expander Header,扩展器将展开内容区域,但不会使父ListBoxItem选中.
如果我单击Expander的Expanded Content Zone,则会选择父ListBoxItem.
单击expandderHeader时如何使内容扩展并且父列表框项被选中?
我将文件从一个文件夹移动到另一个文件夹.如果我尝试将整个文件夹移动到该特定文件夹中的文件夹,我就无法这样做.但如果我把它移到外面就可以了.如何将文件夹移动到该文件夹中的文件夹?
这给出了错误
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) 可能这是一个愚蠢的问题.
当一个对象被标记为垃圾收集时,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) 我有一些代码执行一些遗留的"数据库"操作,然后处理结果.我想编写一个单元测试来检查调用遗留代码的方法,而不与"数据库"交互.
我的代码看起来像这样:
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或类似的东西创建LegacySession并LegacyRoutine使用这些接口的模拟实现来编写单元测试.问题是,我没有访问代码,LegacyRoutine或者LegacySession,所以我不能让他们实现一个接口.
关于如何在不改变生产代码的情况下做到这一点的任何想法?
我有一个像"3.9"的字符串我想将此字符串转换为数字而不使用拆分函数.
如果string是3.9 => o/p 39
如果string是1.2.3 => o/p 123
c# ×8
wpf ×4
.net ×2
nunit ×2
unit-testing ×2
c#-4.0 ×1
childcontrol ×1
dependencies ×1
java ×1
linq-to-sql ×1
listbox ×1
listboxitem ×1
localization ×1
mvvm ×1
string ×1
tfs ×1
try-finally ×1
wpf-controls ×1