我有一个IList<Delegate>包含一些Func<bool>s和一些Predicate<T>s,其中T有所不同.我后来需要弄清楚这些项目中Predicate<T>的哪些是s,但是不想关闭Delegate以后在列表中添加其他类型的大门,所以我不想通过识别对象来做到这一点!(current_delegate is Func<bool>).
下面的最高抽象Predicate<T>是MulticastDelegate,这似乎无益(需要非泛型Predicate类型Predicate<T>),并且鉴于Delegate列表中可能存在的其他通用s,识别泛型参数的存在也是无用的.
我认为唯一的另一件事是检查Name的Type.对我来说,字符串比较是近乎嗅觉,但也许这是最好的和/或唯一的方式 - 你告诉我.
什么是在不知道类型的情况下明确确定a object是什么的最佳方法?Predicate<T>T
这开始于我认为与我的实现有关的奇怪行为,我ToString()问了这个问题:当ToString()有一个协作对象时,为什么WPF数据绑定不显示文本?
事实证明这与合作者无关,并且具有可重复性.
当我绑定Label.Content到DataContext声明为接口类型的属性ToString()时,在运行时对象上调用,标签显示结果.
当我绑定TextBlock.Text到同一个属性时,ToString()永远不会被调用,也不显示任何内容.但是,如果我将声明的属性更改为接口的具体实现,它将按预期工作.
这是不是设计?如果是这样,任何想法为什么?
重现:
Run Code Online (Sandbox Code Playgroud)public interface IFoo { string foo_part1 { get; set; } string foo_part2 { get; set; } } public class Foo : IFoo { public string foo_part1 { get; set; } public string foo_part2 { get; set; } public override string ToString() { return foo_part1 + " - " + foo_part2; } }
public class Bar …Run Code Online (Sandbox Code Playgroud) 我有一个客户端 - 服务器应用程序的初始发布的截止日期,随后会有很多迭代发布.
NHibernate是首选的ORM,主要是声誉和我希望获得它的经验.
问题是我还没有机会加入NHibernate,我担心这样做会让我偏离最后期限.所以,我认为我现在要么使用LINQ to SQL或 Entity Framework,因为我对它们有一些经验,然后当我能够时,换掉NHibernate.
鉴于这种情况,在抽象数据访问或设计数据库模式时,我应该做些什么特别的考虑,以防止在迁移到NHibernate时出现大麻烦?
正如Asad在下面链接的帖子所指出的那样,L2S将限制我每个类的表,这可能在第一次迭代中可以管理,但我不想沿着那条路走下去.现在让我们假设从EF到NH的未来迁移.
这是基于我假设采用类型的对象:
public class Fruit : IBasicFruit, IFruitDetails
{
// IBasicFruit implementation
public string name { get; set; }
public string color { get; set; }
// IFruitDetails implementation
public string scientific_name { get; set; }
public bool often_mistaken_for_vegetable { get; set; }
public float average_grams { get; set; }
public int century_domesticated { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...并从中创建一个类型的对象:
public class BasicFruit : IBasicFruit
{
public string name { get; set; }
public string color { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...被称为"投影"或"类型投影"(该投影不仅适用于匿名类型). …
任务创建一个登录页面,允许两个特定组的成员访问MVC项目中的某些控制器和操作,我开始创建AD的角色提供程序.我设法使用表单身份验证配置它,并枚举经过身份验证的用户在AD中所属的组.
然而,事实证明,我被要求设置的组不是AD组.我看到很多团体,但不是那些有问题的团体.
该请求基于以下事实:这些组出现在Exchange的全球通讯录中,但似乎没有1:1的关系.
有什么关系吗?
exchange-server roles active-directory active-directory-group
在设计派生类时,如果不需要更改方法,那么在ctorvs中覆盖OnEventName()方法并添加一些行为(以及调用基本方法)的基类事件中添加处理程序是否有优势?基本方法并不关心事情发生的顺序,但只想要一个具有一点额外行为的可重用组件?
public abstract class BaseClass
{
public event EventHandler SomeEvent;
protected void OnSomeEvent(object sender, EventArgs e)
{
// do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
public class DerivedA
{
protected override void OnSomeEvent(object sender, EventArgs e)
{
// do some other stuff
base.OnSomeEvent(sender, e);
}
}
Run Code Online (Sandbox Code Playgroud)
public class DerivedB
{
public DerivedB()
{
SomeEvent += (o,e) => { // do some other stuff };
}
}
Run Code Online (Sandbox Code Playgroud) 这可以通过以下方法完成:
myStub.Stub(x => x.SomeMethod()).WhenCalled(x => do something);
Run Code Online (Sandbox Code Playgroud)
有没有办法在调用属性setter时可以做同样的事情?
以前没有使用过MSMQ,我根本不清楚使用它的客户端环境要求.
我正在设计一个客户端/服务器解决方案,它将与遗留系统集成,而且我会通过消息传递出售.我想使用像MassTransit这样的服务总线实现,但这需要MSMQ.
我是否必须确保每台客户端PC都安装了MSMQ?
我不认为我向管理员密码管理员销售此产品的前景非常好.
现在我可以可靠地期望每台客户机都安装了Windows XP Professional,但这可能会改变,我的理解是默认情况下不会在更新的操作系统上安装MSMQ,这将是一个更大的麻烦.
任何人都可以为我阐明这是如何工作的吗?我无法想象任何商业软件如何依赖MSMQ,除非我遗漏了一些重要的东西(我希望我是).
(服务器不是问题 - 我完全可以控制它.)
我的WPF窗口将其前景画笔设置为资源字典中的画笔,我希望窗口中的所有文本都具有此颜色,因此我不会在其他任何内容中触摸前景画笔.
文本框获取颜色
Textblocks获取颜色
按钮获取颜色
列表框没有颜色,所以它们的内容也没有.
有没有办法让Listbox在这方面表现得像其他控件一样?
假设没有,并且这是设计的,理由是什么?
看来我的问题还不够明确.
我理解如何创建样式和资源并将它们应用于ListBoxes; 我不知道为什么我需要为某些控件做到这一点时,我就没有需要为别人-为什么一些继承性和别人不一样-是否有什么办法可以让他们都以同样的方式继承.
我是一般使用Blend和WPF的初学者.我创建了三个用户控件.我还创建了一个应该包含用户控件的Window.
是否有任何设计师的方式,如拖动用户控件到窗口,这将使它自动出现?或者输入XAML是包含它的唯一方法?
在我的所有VB6应用程序中,连接信息都存储在数据库中的加密字段中.没有人可以访问数据库,如果有人这样做,他们只能看到一堆加密值.
这种方法总是存在缺陷.使用应用程序中的硬编码ID /密码获取所需的连接信息,以获取此连接信息并形成字符串.
在.NET世界中,我目前将这个硬编码的id /密码存储在app.exe.config文件中.推荐的方法是加密文件中的连接字符串?
我可以使用哪些类来执行此加密/解密?
我需要一个类来轻松处理所有数据库.例如,使用ado和sql我们有SqlConnection,但它不是通用的,对于其他数据库类型,你必须使用其他类.
我想要一个DatabaseConnection类型的对象,让我轻松连接到各种类型的数据库,让我在数据库上运行查询.
.net ×7
c# ×5
wpf ×3
orm ×2
xaml ×2
arrays ×1
blend ×1
c ×1
data-binding ×1
database ×1
delegates ×1
events ×1
frameworks ×1
inheritance ×1
linq-to-sql ×1
listbox ×1
mapping ×1
masstransit ×1
messaging ×1
mocking ×1
msmq ×1
nhibernate ×1
projection ×1
reflection ×1
rhino-mocks ×1
roles ×1
types ×1
unit-testing ×1