任何人都有幸将StructureMap(DI Framework)与WCF集成在一起?
我可以像这样在我的WCF服务的构造函数中返回默认实例,但显然它并不理想.
public MemberService()
{
this.memberRepository = StructureMap.ObjectFactory.GetInstance<IMemberRepository>();
}
Run Code Online (Sandbox Code Playgroud)
我见过这个(http://www.lostechies.com/blogs/jimmy_bogard/archive/2008/07/29/integrating-structuremap-with-wcf.aspx)但由于我认为它与最新的2.5+不兼容,所以没有运气设置发布StructureMap.
据我所知,"例外是特殊情况下" [1],但除了只是被重复过和过一遍,我从来没有发现这一事实的实际原因.
作为他们停止执行,这是有道理的,你会不会希望他们为平原的条件逻辑,但为什么不输入验证?
假设你通过一组输入是循环和捕捉每个异常将它们组合在一起的用户通知...我不断地看到,这是某种"错误的",因为用户输入不正确输入所有的时间,但是这点似乎是基于在语义上.
输入不是预期的,因此是例外.抛出一个异常,让我解释清楚到底发生了什么事像StringValueTooLong或或IntegerValueTooLow或InvalidDateValue或什么的.为什么这被认为是错的?
替代抛出一个异常,将回移(最终收集)错误代码或差远了错误的字符串.然后我会直接显示这些错误字符串,或者解析错误代码然后向用户显示相应的错误消息.不会将异常视为可延展的错误代码吗?为什么要创建的错误代码和消息一个单独的表,当这些可以与例外的功能被推广已经内置到我的语言?
另外,我发现Martin Fowler的这篇文章是关于如何处理这些事情 - 通知模式.我不确定我是如何将此视为除了不停止执行的异常之外的任何东西.
a:我到处都读过有关例外的内容.
---编辑---
已经提出了许多重点.我对大多数事情都有评论,而且还有优点,但我还不完全相信.
我并不是要提倡将Exceptions作为解决输入验证的正确方法,但我想找到很好的理由,为什么这种做法被认为是如此邪恶,因为似乎大多数替代解决方案只是伪装的例外.
我正在尝试创建一个自定义控件 - 一个按钮 - 根据数据上下文中属性的值,它将应用多种样式.
我在想的是使用类似的东西:
<Button Style="{Binding Path=ButtonStyleProperty, Converter={StaticResource styleConverter}}" Text="{Binding Path=TextProp}" />
Run Code Online (Sandbox Code Playgroud)
在代码中......实现一个IValueConverter,它在ConvertTo方法中执行类似下面的代码:
switch(value as ValueEnums)
{
case ValueEnums.Enum1:
FindResource("Enum1ButtonStyle") as Style;
break;
... and so on.
}
Run Code Online (Sandbox Code Playgroud)
但是我不完全确定如何拉出样式对象,即使这是可能的......
我正在做的事情是处理DataContextChanged事件,然后将处理程序附加到PropertyChanged绑定到按钮的对象的事件 - 然后在那里运行switch语句.
它不是很完美,但在我找到一个更好的解决方案之前,我似乎必须使用它.
有没有办法在Mac OS X上自动启动USB连接或CD插入应用程序?它在Windows上很容易,但我发现它AutoRun.Inf根本不适用于Mac.
在explain命令的输出中,我发现了两个术语'Seq Scan'和'Bitmap heap Scan'.有人能告诉我这两种类型的扫描有什么区别吗?(我正在使用PostgreSql)
postgresql optimization query-optimization sql-execution-plan
我想澄清价值和参考之间的差异.
我画了一张照片

所以,为了通过价值,
使用不同的引用创建相同对象的副本,并为本地变量分配新引用,以指向新副本
如何理解单词:"如果函数修改了该值,则修改也出现在调用函数的范围内,用于传递值和引用"
谢谢!
我有一种我认为用它作为结构的类型.
但问题是,它有6个int字段.
那么我应该为这种类型使用哪种解决方案?
编辑
具有6个整数字段的struct的大小是24字节,这是很难传递的.struct的推荐大小不超过16个字节
我正在编程服务器,似乎我的连接数量有限,因为我的带宽没有饱和,即使我已经将连接数设置为"无限制".
如何增加或消除我的Ubuntu Linux盒一次可以打开的最大连接数?操作系统是否限制了这个,还是路由器或ISP?或者是别的什么?
我有一个数组,我想制作一个哈希,所以我可以快速问"数组中的X是什么?".
在perl中,有一种简单(快速)的方法:
my @array = qw( 1 2 3 );
my %hash;
@hash{@array} = undef;
Run Code Online (Sandbox Code Playgroud)
这会生成一个如下所示的哈希:
{
1 => undef,
2 => undef,
3 => undef,
}
Run Code Online (Sandbox Code Playgroud)
我在Ruby中提出的最好的是:
array = [1, 2, 3]
hash = Hash[array.map {|x| [x, nil]}]
Run Code Online (Sandbox Code Playgroud)
这使:
{1=>nil, 2=>nil, 3=>nil}
Run Code Online (Sandbox Code Playgroud)
有更好的Ruby方式吗?
不,Array.include?不是个好主意.它很慢.它在O(n)中进行查询而不是O(1).为简洁起见,我的示例数组有三个元素; 假设实际的有一百万个元素.我们做一点基准测试:
#!/usr/bin/ruby -w
require 'benchmark'
array = (1..1_000_000).to_a
hash = Hash[array.map {|x| [x, nil]}]
Benchmark.bm(15) do |x|
x.report("Array.include?") { 1000.times { array.include?(500_000) } }
x.report("Hash.include?") { 1000.times { hash.include?(500_000) } }
end …Run Code Online (Sandbox Code Playgroud) 我需要你的帮助来定义XML模式中的特殊情况:包含两个元素的序列:'x'和'y',而:
<x> 元素在序列中可以显示0到未绑定的时间
<y> 元素在序列中可以出现0到1次
<x>和<y>位置可以在任何地方 - 也就是说,可以将未绑定的时间作为<x>元素,然后是单个<y>元素,然后取消绑定<x>元素.
这个问题的XML示例:
<x>stuff</x>
<y>stuff</y>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)
<y>stuff</y>
<x>stuff</x>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)
<x>stuff</x>
<x>stuff</x>
<y>stuff</y>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)
谢谢!
optimization ×2
arrays ×1
autorun ×1
c# ×1
c++ ×1
class ×1
data-binding ×1
exception ×1
hash ×1
linux ×1
linux-kernel ×1
macos ×1
postgresql ×1
ruby ×1
struct ×1
structuremap ×1
styles ×1
usb ×1
validation ×1
wcf ×1
wpf ×1
xml ×1
xsd ×1