小编Ada*_*oll的帖子

在Moq Callback()调用中设置变量值

我想我可能对Moq Callback方法的语法有点困惑.当我尝试做这样的事情时:

IFilter filter = new Filter();
List<IFoo> objects = new List<IFoo> { new Foo(), new Foo() };  

IQueryable myFilteredFoos = null;
mockObject.Setup(m => m.GetByFilter(It.IsAny<IFilter>()))
   .Callback( (IFilter filter) => myFilteredFoos = filter.FilterCollection(objects))
   .Returns(myFilteredFoos.Cast<IFooBar>());
Run Code Online (Sandbox Code Playgroud)

这会引发异常,因为myFilteredFoosCast<IFooBar>()调用期间为null .这不符合我的预期吗?我认为FilterCollection会被调用,然后myFilteredFoos将是非null并允许演员.

FilterCollection是不是能够返回一个null,它使我得出它没有被调用的结论.另外,当我这样声明时myFilteredFoos:

Queryable myFilteredFoos;
Run Code Online (Sandbox Code Playgroud)

Return调用抱怨myFilteredFoos可以在初始化之前使用.

.net c# unit-testing moq mocking

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

一种将基类型转换为派生类型的方法

我不确定这是否是一件奇怪的事情,或者是否有一些代码闻起来...但我想知道是否有某种方式(某种oop模式会很好)来"施放"基类型到其派生类型的形式.我知道这没有多大意义,因为派生类型将具有父级不提供的附加功能,这在其本身并非基本健全.但有没有办法做到这一点?这是一个代码示例,以便我可以更好地解释我在问什么.

public class SomeBaseClass {
    public string GetBaseClassName {get;set;}
    public bool BooleanEvaluator {get;set;}
}

public class SomeDerivedClass : SomeBaseClass {
    public void Insert(SqlConnection connection) {
          //...random connection stuff
          cmd.Parameters["IsItTrue"].Value = this.BooleanEvalutar;
          //...
    }
}

public static void Main(object[] args) {
    SomeBaseClass baseClass = new SomeBaseClass();
    SomeDerivedClass derClass = (SomeDerivedClass)baseClass; 
    derClass.Insert(new sqlConnection());
}
Run Code Online (Sandbox Code Playgroud)

我知道这似乎很傻,但有没有办法完成这种事情?

c# oop inheritance design-patterns

45
推荐指数
7
解决办法
7万
查看次数

搜索字符串文字

在寻求本地化的过程中,我需要在源代码中找到所有字符串文字.我正在寻找一种方法将其编入脚本修改后的源库检查.(IE之后有人检查了一些东西,有一个盒子设置来检查这个统计数据)我可能会使用NAnt和CruiseControl或其他东西来处理CVS的管理(在我的情况下,StarTeam很好:()但是你知道任何可编写脚本的吗? (或命令行)实用程序,以准确循环通过源代码寻找字符串文字?我意识到我可以根据正则表达式进行简单的字符串查找,但想要更多的帮助.(也许分析字符串或将其分类)因为很多时候字符串可能不一定需要翻译.任何想法?

.net string localization string-literals

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

硒批判

我只是想从运行Selenium的人那里得到一些意见(http://selenium.openqa.org)我在WaTiN方面有很多经验,甚至还为它写了一套录音套件.我有它生成一些结构良好的代码,但只是由我维护,似乎我的公司几乎放弃了它.如果你已经运行了硒,你有很多成功吗?我将使用.NET 3.5,Selenium能很好地使用它吗?生成的代码是干净的还是只是所有交互的列表?(http://blogs.conchango.com/richardgriffin/archive/2006/11/14/Testing-Design-Pattern-for-using-WATiR_2F00_N.aspx)分布式测试套件的公平性如何?

任何其他抱怨或赞美系统将不胜感激!

selenium automated-tests unit-testing ui-testing

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

Visual Studio 2010 64位COM互操作问题

我正在尝试将VC6 COM DLL添加到我们的VS2010RC C#解决方案中.使用VC6工具编译DLL以创建x86版本,并使用VC7跨平台工具编译以生成VC7 DLL.

只要消耗C#项目的平台设置为x86,组件的x86版本就可以正常工作.DLL的x64或x86版本是否实际注册无关紧要.它适用于两者.如果平台设置为"任何CPU",我会收到一个BadImageFormatException负载Interop.<name>.dll.

至于x64版本,我甚至无法构建项目.我收到tlbimp错误:

TlbImp:错误TI0000:必须指定与输入类型库兼容的单个有效机器类型.

有没有人见过这个问题?

编辑:

我已经做了很多深入研究这个问题,并认为这可能是一个Visual Studio错误.我有一个干净的解决方案.我引入了我的COM程序集,选择了与语言无关的"任何CPU".生成的Interop DLL的过程体系结构是x86而不是MSIL.

可能必须手工制作Interop才能使其工作.

如果有人有其他建议,请告诉我.

com interop visual-c++-6 visual-studio-2010

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

提供.NET方法作为委托回调

将.NET方法作为代理回调传递给PowerShell中的.NET对象的语法是什么?

例如:

C#:

public class Class1
{
    public static void MyMethod(Action<object> obj)
    {
         obj("Hey!");
    }
}

public class Class2
{
    public static void Callback(object obj)
    {
         Console.Writeline(obj.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

电源外壳:

[Class1]::MyMethod([Class2]::Callback)
Run Code Online (Sandbox Code Playgroud)

这不起作用.

.net c# powershell delegates powershell-2.0

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

在解决方案中测试项目

在.NET中,您应该将单元测试项目与其余解决方案放在一起吗?或者是否应该有一个包含所有测试项目的测试解决方案?

我们的代码库解决方案中包含所有测试项目......看起来有点麻烦.

你平常都做什么?

.net unit-testing solution visual-studio

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

Visual Studio 2010无法再构建.NET v3.5

我有一个针对.NET v3.5的2010项目.令人费解的是,我无法再构建v3.5项目.该项目没有添加任何参考.它甚至不会让我添加对System.Core的引用,因为它是由"构建系统"添加的.

警告CS1685:预定义类型'System.Func'在全局别名中的多个程序集中定义; 使用'c:\ Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll'中的定义

IFilter.cs(82,49):错误CS0433:类型'System.Func'存在于'c:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll'和'C:\ WINDOWS\Microsoft.NET \框架\ v4.0.30319\mscorlib.dll中'

看起来有些东西正在抓住4.0但我不太确定如何修复它.还有其他人碰到这个吗?

同事有同样的问题.重新安装Windows以解决问题

我在这个问题上打开了一个错误:https://connect.microsoft.com/VisualStudio/feedback/details/558245/warning-cs1685-when-compiling-a-v3-5-net-application-in-visual-工作室2010

如果编译器设置为verbose,我会看到:

FrameworkPathOverride = C:\ Windows\Microsoft.NET\Framework\v4.0.30319

定义为:

指定mscorlib.dll和microsoft.visualbasic.dll的位置.此参数等效于vbc.exe编译器的/ sdkpath开关.

其他一些有趣的花絮:我一起创建了一个新项目,根本无法构建v3.5.我可以毫无问题地构建2.0,3.0,3.5客户端配置文件,4.0和4.0客户端配置文件.VB.NET可以构建v3.5但C#不能.我尝试重新安装.NET 3.5,4.0和Visual Studio 2010但没有成功.Visual Studio调试日志没有显示任何有趣的安全模式不起作用.

试图避免重新安装Windows ...

编辑:我已经意识到其他人也面临着这个问题.链接,链接,链接


重新安装了好几次.Visual Studio卸载不会自行清理.我已经开发了一个虚拟机来开发,直到我有机会重新安装我的主操作系统.

c# visual-studio-2010 .net-3.5

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

WPF MouseLeftButtonUp未触发

WPF中发生的奇怪事件...当我将事件设置为MouseUp时,我可以在右键单击按钮时触发它.但这不会随着点击而发射!

               <Button MouseLeftButtonUp="btnNewConfig_MouseUp"  Name="btnNewConfig">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="Icons\new.ico" Height="24" Width="24" Margin="5"/>
                        <TextBlock VerticalAlignment="Center">New</TextBlock>
                    </StackPanel>
                </Button>
Run Code Online (Sandbox Code Playgroud)

我知道这很可能很简单.谢谢您的帮助!

wpf events button mouseleftbuttonup

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

自定义PowerShell主机并将PSObject转换回基本类型

托管PowerShell运行时是否可以将PSObject其转换回原始类型?

例如:

我有一个cmdlet调用WriteObject并推送管道中的ClassXzy集合.当我PowerShell.Invoke从主机端调用时,我检索PSObject带有BaseObject属性的s 集合.铸造BaseObjectClassXyz失败.

有没有办法将每个属性值映射到其对应的原始对象?
我假设PowerShell以某种方式执行此操作,因为您可以将PSObjects 传递给cmdlet并将它们转换为参数类型.但是怎么样?

我花时间用反射器撕裂了PS组件,但还没有真正确定这种魔法是如何发生的.

有任何想法吗?

编辑:我忘记了一个非常重要的细节.在PSObject我正在测试对,因此是一个远程对象BaseObject类型命名Deserialized.ClassXyz.这就是我看到这种奇怪行为的原因.

.net c# powershell powershell-sdk

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