我偶然发现了这个:
在Unity容器中,我想注册IDictionary<TK, TV>; 假设它是IDictionary<string, int>
_unityContainer = new UnityContainer()
.RegisterType<IDictionary<string, int>, Dictionary<string, int>>();
Run Code Online (Sandbox Code Playgroud)
但如果我试试
var d = _unityContainer.Resolve<IDictionary<string, int>>();
Run Code Online (Sandbox Code Playgroud)
它无法解决......
我明白了......
Microsoft.Practices.Unity.ResolutionFailedException:Microsoft.Practices.Unity.ResolutionFailedException:依赖项的解析失败,type ="System.Collections.Generic.IDictionary`2 [System.String,System.Int32]",name ="(none )".在解决时发生异常:
异常是:InvalidOperationException - 类型Dictionary`2有多个长度为2的构造函数.无法消除歧义.
在例外时,容器是:
解析System.Collections.Generic.Dictionary 2[System.String,System.Int32],(none) (mapped from System.Collections.Generic.IDictionary2 [System.String,System.Int32],(无))---> System.InvalidOperationException:类型Dictionary`2有多个长度为2的构造函数.无法消除歧义..
所以看起来它已经找到要解决的类型(正在Dictionary<string, int>)但未能将它新起来......
怎么团结不能解决这种类型?如果我输入
IDictionary<string, int> d = new Dictionary<string, int>()
Run Code Online (Sandbox Code Playgroud)
这样可行...
有任何想法吗?
谢谢!
有人能解释一下这里发生了什么吗?Howcome 两种这些东西是真的吗?
[TestMethod]
public void WhatIsGoingOnHere()
{
List<int?> list = new List<int?> { 1, 2, 3, null, 5, 6 };
Assert.AreEqual(17, list.Sum());
int? singleSum = 1 + 2 + 3 + null + 5 + 6;
Assert.IsNull(singleSum);
}
Run Code Online (Sandbox Code Playgroud)
具体来说,为什么Sum()方法不返回'null'?或者单身不等于17?
如何将ValueConverter应用于基于约定的Caliburn.Micro绑定?或者你需要使用{Binding}语法吗?
我知道我能做到这一点
<TextBlock
Text="{Binding Foo, Converter=fooToBarConverter}" />
Run Code Online (Sandbox Code Playgroud)
但如果我使用Caliburn.Micro的约定优于配置,如何应用该自定义转换器
<TextBlock
x:Name="Foo" />
Run Code Online (Sandbox Code Playgroud)
谢谢,
我正在玩.net 4 System.Windows.Markup.XamlReader- 就像教育练习一样 - 我一直在遇到同样的问题:如果根对象定义了一个,那么加载xaml XamlReader.Load会抛出a ,但如果没有,则成功解析并加载节点.XamlParseExceptionx:Class
这是我正在尝试的代码:
using System.Windows;
using System.Xaml;
using XamlReader = System.Windows.Markup.XamlReader;
namespace WpfApplication2
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// Load up UserControl1.xaml from the solution
var reader = new XamlXmlReader(@"../../UserControl1.xaml", XamlReader.GetWpfSchemaContext());
var userControl = XamlReader.Load(reader) as UserControl1;
// Do something with userControl...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试XamlReader.Parse直接从持有xaml的字符串中得到相同的结果:只有在没有定义x:Class声明的情况下才有效.
删除x:Class声明似乎不是一个好的选择,因为然后我失去了代码隐藏,特别是调用InitalizeComponent()
例外细节:
'Specified …
我创建了这个要点来描述正在发生的事情:
https://gist.github.com/IanRandall/5417410
简要说明:.Verify断言在存储库的第一个.Get()方法实现中失败,因为Moq没有注意到正在调用映射器.
有人见过这个吗?我错过了什么吗?
干杯:)