Tag: 设计

Unity Application Block,如何将参数传递给Injection Factory?

这就是我现在所拥有的 Container.RegisterType(); Container.RegisterType( new InjectionFactory( (c) => c.Resolve().GetUser(“John”))); 得到它 Container.Resolve(); 我想将一个名称作为参数传递给Factory,以便我能够用名称解析用户对象; 像这样的东西: Container.Resolve(“Jonh”); 如何更改此案例的类型注册?

error handling/记录策略

你们可以分享你对asp.net 3.5基于web的应用程序的error handling/日志记录策略的了解吗?

WPF中的WPF命令和事件有什么区别?

我只是在谷歌搜索WPF中的WPF命令和事件之间的区别。 我登陆了stackoverflow的下一页,讨论正在进行中。 WPF Command和Event有什么区别? 我只能从那里了解 命令可以在业务层中编写,而事件仅在演示中编写 单个命令可以与许多控件关联,但事件只能与一个控件关联。 我对吗? 它们之间还有其他区别吗?

为什么我们需要业务逻辑层?

我正在开发使用Web服务的ASP.net应用程序。 我的应用程序没有直接的数据库连接 – 所有活动都是使用Web服务处理的。 在UI层,我可以使用几行Linq代码进行数据自定义和validation。 如果我的应用程序没有业务层,有什么缺点?

“在大多数情况下,基础抽象通用类是一个糟糕的选择。”为什么? (或者为什么不)

我刚看到博客文章的评论: 在大多数情况下,基本抽象generics类是一个糟糕的选择 这是真的,如果不是为什么? 有什么见解导致这种说法?

WCF:MessageContract,DataContract ……困惑?

我正在编写我的第一个WCF服务。 我决定将服务作为一个DLL开始编写,然后将WCF的内容展开,这就是我现在所处的位置。 建筑师告诉我,我应该坚持使用特定的消息对象格式。 但是我在我的消息对象中使用了Interfaces,复杂类型和列表。 我要添加属性,我有点困惑。 这是我的代码的示例。 [ServiceContract] public interface MyServiceContract { [OperationContract] MyMethodResponseMessage MyMethod(MyMethodRequestMessage request); } public class MyService : MyServiceContract { public MyMethodResponseMessage MyMethod(MyMethodRequestMessage request) { //Do things } } //Messages [MessageContract] public class MyMethodResponseMessage { [MessageBodyMember] public MyMethodResponse Body { get; set; } } [DataContract] public class MyMethodResponse { [DataMember] public IMyComplexTypeItem { […]

c#在对象构造函数中启动异步方法 – 不好的做法?

我在一个类似的对象构造函数中有一些代码 delegate DataSet MyInvoker; public MyObject(Param1 p1) { // property sets here // … BeginMyAsyncMethod(); } public void BeginMyAsyncMethod() { // set some properties // … MyInvoker inv = new MyInvoker(SomeBeginMethod); inv.BeginInvoke(new AsyncCallback(SomeEndMethod), null); } 我的问题是: 这通常被认为是不好的做法吗? 在我的类中定义一个start方法(用户可以调用它来执行异步操作)会更好(或更好)吗? 这个答案给我的印象是,将它留给用户是不好的做法,虽然我特别谈到在构造函数中启动异步方法,而不是正确构造对象。

在C#中创建动态变量名

我正在尝试用C#编写一个简单的角色扮演游戏,以便更熟悉该语言。 我有一个类从CSV文件加载数据,创建一个对象,并将其放在字典中。 因为游戏的每个方面都有不同的数据(项目,演员,技能等),所以我将每个方面都设置为一个类,但这要求我为每个方面重新实现一个Load()方法。 在做了5到6次之后,我想知道是否有更好的方法来实现它。 基本上,我想要做的是解析包含标题的CSV的第一行,并将它们用作类变量名。 目前,它们是作为字典关系实现的,所以我会做SomeClassInstance.dict [“id”],其中我理想地输入SomeClassInstance.id,它完全是从文件的内容生成的。 那是一件事吗? 我该怎么做呢?

嵌套构造函数(或工厂方法)是否良好,或者每个都应该执行所有初始化工作

对于重载的New或Factory样式方法,嵌套构造函数调用(从设计POV)是一个好主意吗? 这主要适用于简单的构造函数,其中每个重载构建在前一个构建器上。 MyClass( arg1 ) { _arg1 = arg1; _otherField = true; _color=”Blue” } MyClass( arg1, arg2) : this(arg1) { _arg2 = arg2 } MyClass( arg1, arg2, arg3) : this(arg1, ar2) { _arg3 = arg3; } 或者使用工厂方法: static NewInstance(arg1 ) { _arg1 = arg1; } static NewInstance(arg1, arg2) { f = NewInstance(arg1); f._arg2 = arg2; […]

C#语言设计:`is`操作符内的方法组

我对C#语言的一些设计选择感兴趣。 C#规范中有一条规则允许使用方法组作为运算符的表达式: class Foo { static void Main() { if (Main is Foo) Main(); } } 上述条件总是错误的,因为规范说: 7.10.10是运营商 • 如果E是方法组或空文字,如果E的类型是引用类型或可空类型且E的值为null,则结果为false。 我的问题:允许在CLR中使用没有运行时表示的C#语言元素的目的/点/原因是什么,就像这样的“运行时”运算符中的方法组一样?