我想使用带有多参数函数的lambda,但是当我尝试调用该行时,Moq会在运行时抛出此异常mock.Object.Convert(value, null, null, null);.
System.Reflection.TargetParameterCountException: Parameter count mismatch
代码是:
var mock = new Mock<IValueConverter>();
mock.Setup(conv => conv.Convert(It.IsAny<Object>(), It.IsAny<Type>(),
It.IsAny<Object>(), It.IsAny<CultureInfo>())).Returns((Int32 num) => num + 5);
var value = 5;
var expected = 10;
var actual = mock.Object.Convert(value, null, null, null);
Run Code Online (Sandbox Code Playgroud)
实施它的正确方法是什么?
我通过代码将文本框数据绑定到可以为空的int.如果我从文本框中删除数据,它会给我一个验证错误(它周围的红色边框).
这是我的绑定代码:
ZipBinding = new Binding("Zip");
ZipBinding.Source = Address;
zipTextBox.SetBinding(TextBox.TextProperty, ZipBinding);
public Int32? Zip { get { ... } set { ... } }
Run Code Online (Sandbox Code Playgroud)
它清楚地标记为Nullable,那么为什么当我清除文本框时WPF想给我一个验证问题?
我知道如何在我的DataGrid中使用MouseDoubleClick事件来获取selectedvalue,但是如何使用命令绑定呢?这样我的ViewModel就可以处理逻辑.
到目前为止,我有以下内容:
<DataGrid Name="TestGrid" Grid.Row="2" Grid.ColumnSpan="2" AutoGenerateColumns="True" MouseDoubleClick="TestGrid_MouseDoubleClick"
ItemsSource="{Binding Registrations}" SelectedValue="{Binding CurrentRegistration}" IsReadOnly="True" AlternationCount="2" GridLinesVisibility="None">
Run Code Online (Sandbox Code Playgroud)
我想摆脱MouseDoubleClick并适当地替换它.
我下载了Prism v4并运行了安装程序.我进入目录并运行以下两个批处理文件:
当我编译这些应用程序时,我没有看到任何真正的区别.我已经搜索了MEF vs Unity,我发现了一些优点/缺点,但没有任何具体说明是否一个人在Prism中使用"更好"(我知道这是主观的).我想也许如果我列出我的要求,有人可以指出我使用的正确技术(即使它不是Prism 4).
例如:
基本用户可能有以下选项:
所有相关地址都在Address.dll内.
高级用户可能具有以下选项:
所有相关地址都在Address.dll内.
管理相关的所有项目都在Admin.dll中.
应用程序不应该实际引用这些DLL中的任何一个,我打算反映它们,以便如果有100个不同的模块,并且用户只能访问其中的2个,则只下载和使用其中的2个.有权访问其中10个的用户获得10个用户.
我已经通过WebService解决了下载DLL.:)
基本上,何时真正需要(如果有的话)使用完全限定的xml参见参考:
<see cref="T:MyNamespace.Sub.MyType"/> //Option 1
<see cref="T:MyType"> //Option 2
Run Code Online (Sandbox Code Playgroud)
另外,引用.NET Framework对象怎么样?
<see cref="T:System.Collections.Generic.ICollection{T}"/> //Option 1
<see cref="T:ICollection{T}"/> //Option 2
Run Code Online (Sandbox Code Playgroud)
我知道完全符合条件的项目将始终允许Microsoft的Sandcastle正确地链接事物,但是一切都必须完全合格吗?
旁注:Microsoft Sandcastle是否能够链接到.NET Framework帮助文件,还是我通过引用浪费时间<see cref="T:System.Collections.Generic.ICollection{T}"/>?
有没有办法返回对象的只读实例?
public class Person
{
public String FirstName { get; set; }
public String LastName { get; set; }
}
public class SomeClass
{
public SomeClass(Person manager)
{
if (manager == null)
throw new ArgumentNullException("manager");
_manager = manager;
}
private readonly Person _manager;
public Person Manager
{
get { return _manager; } //How do I make it readonly period!
}
}
Run Code Online (Sandbox Code Playgroud)
唯一的方法是通过返回克隆()来执行此操作,以便对克隆而不是原始进行任何更改?我知道对于Arrays,有一个函数可以将Array作为只读方式返回.哦,我知道这是一个参考类型...我还想知道是否有一些隐藏的C#功能来锁定写入部分.
我试图想出一个Generic ReadOnly包装器类,但是如果没有做一些昂贵的反射等等,就无法弄清楚如何将属性作为readonly.
哦,我真的试图避免创建所有只读属性的类的第二个版本.那时,我不妨返回克隆.
前一段时间我使用HttpClient该类实现了一些使用REST Api的代码.
using (var client = new HttpClient() { BaseAddress = new Uri(@"https://thirdparty.com") })
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(...);
var uri = new Uri(@"rest/api/foo", UriKind.Relative);
var content = new StringContent(json.ToString());
using (var response = await client.PostAsync(uri, content))
{
// etc ...
}
}
Run Code Online (Sandbox Code Playgroud)
对于测试和生产环境(每个环境都访问测试/生产环境),此代码似乎完全正常.最近,我们开始只在生产环境中获得HttpRequestException :System.Net.Http.HttpRequestException: Error while copying content to a stream.
这看起来有点奇怪,所以我使用Postman发送相同的消息,它工作得很好.我不确定为什么我们的代码失败了,Postman正在工作.我更改了json数据中的参数(状态从"NY"到"NV"),我们的.NET代码运行正常 - 当然我们不能只发送错误的json数据,所以这不是一个解决方案; 这更像是一个观察结果,完全相同的代码在不同内容下运行良好.
有趣的是,我们可以通过两个代码更改来解决这个问题.首先,Postman能够使用该RestSharp包生成有效的C#代码.或者,我从另一个指向使用HttpVersion 1.0的问题中找到答案:
using (var request = new HttpRequestMessage(HttpMethod.Post, uri))
{
request.Version = HttpVersion.Version10; …Run Code Online (Sandbox Code Playgroud) 当我选择"Debug"配置时,DEBUG常量处于活动状态.当我选择"Release"配置时,DEBUG常量处于非活动状态.
如何创建自己的配置,以便它们包含我自己定义的常量.基本上,我想要它,以便如果我选择配置"FOOBAR",有一个常量FOO并且BAR在我的项目中处于活动状态.
我基本上试图避免#define FOO在我的项目中放入一堆,然后在我需要/不需要它们时评论/取消注释.
是否有一种标准方法,用于生成API文档的工具处理部分类的XML样式注释?基本上,应该如何评论部分类/方法,以便生成的帮助文档不被破坏?这个问题可能因使用的工具而异,在这种情况下,我想最重要的两个工具是:
我不希望我的XML文档出来时髦
/// <summary>Some Foo class</summary>
public partial class Foo { ... }
/// <summary>Some Foo class that implements some interface.</summary>
public partial class Foo : ISomeInterface { ... }
Run Code Online (Sandbox Code Playgroud) 挺直的.MSDN声明您可以使用ref,但不能使用部分方法.我只是好奇为什么?我的理解是,当编译代码时,部分被合并,那么限制是什么呢?还有更多partial不仅仅是使代码文件更清洁和有组织(即eyecandy)?
c# ×7
wpf ×4
sandcastle ×2
xml-comments ×2
constants ×1
data-binding ×1
datagrid ×1
double-click ×1
json ×1
mef ×1
moq ×1
mvvm ×1
object ×1
postman ×1
prism-4 ×1
readonly ×1
rest ×1
unit-testing ×1
validation ×1