我有几个代表网络应用程序的对象。目前我有一个集群对象来表示应用程序的特定部署。在集群对象中,我有以下对象:服务器、客户、用户。这些对象都不能不属于集群而存在,因此我创建了一个ClusterRepository来从数据库中检索集群。现在,我需要从集群中获取客户列表,大概是通过使用集群对象中的方法,如GetCustomers()。现在,我最初的想法是将此操作的工作卸载到CustomerRepository,但由于存储库仅用于聚合根,数据访问逻辑应该放在哪里?这属于服务类别吗? 最佳答案 从本质上讲,聚合根是您可能需要作为对象图的根获取的
假设我有一个像这样的POCO:publicclassName{publicstringFirstName{get;set;}publicstringLastName{get;set;}}名字和姓氏不能为空。我应该添加这样的方法吗:publicListValidate(){varerrors=newList();if(String.IsNullOrEmpty(FirstName))errors.Add(newError("FirstName","Youmustfilloutfirstname."));if(String.IsNullOrEmpty(LastName))errors.Add
我需要生成唯一的文件夹名称,我应该使用Path.GetRandomFileName吗?或者只使用Guid.NewGuid?Guids说它们是全局唯一的,GetRandomFileName并没有这样的说法。 最佳答案 我认为两者都是随机的,不同之处在于Path.GetRandomFileName将生成一个8.3文件名(总共11个字符),因此与由Guid.NewGuid. 关于c#-我应该使用Path.GetRandomFileName还是使用Guid?,我们在StackOverflow上找
我有一个WCF层,我的领域模型在这个WCF层后面。我正在使用Nhibernate作为ORM工具,我所有的业务逻辑/数据访问等都将在这个WCF层之后。我正在向我的客户公开DTO。我有以下问题1)我应该创建DTO吗?将实体直接暴露给wcf客户端有什么坏处,因为我的实体也会有业务逻辑方法,这样做我将不得不用我认为不好的WCF属性破坏我的实体对象?2)如果我公开DTO,我是否应该验证DTO以及实体。如果我只验证DTO,那么我不会为我的Enitity对象提供任何输入验证。这样可以吗?3)我是否应该考虑使用模式验证在应用程序服务层(WCF层)中验证DTO?或者我应该使用文章[博客]中给出的IVal
我想创建一个简单的游戏,例如tictactoe,让人类用户与计算机对战。计算机功能需要几毫秒才能运行,但我想给出计算机需要5秒才能移动的感觉。我应该使用哪种方法?1)创建两个内存线程。一种用于计算机,一种用于人类用户。当计算机用5秒模仿思考时,人类用户线程暂停5秒。2)使用计时器或调度器计时器禁用输入设备5秒3)你能想到的任何更好的方法..谢谢!编辑-问题是关于如何以及现在是为什么。5秒只是一个例子。我更喜欢1-2秒,但出于示例目的,我只选择了5秒。所以请关注执行此操作的最佳方法,而不是5秒。再次感谢。 最佳答案 噪音和闪烁的灯光=
我今天遇到了这个问题并且能够确定,在进行代码清理时,R#不会将属性从具有支持字段转换为使用SerializableAttribute装饰的类中的自动属性,例如usingSystem;namespaceDataContracts{[Serializable]publicclassClass1{privatebool_wontChange;publicboolWontChange{get{return_wontChange;}set{_wontChange=value;}}}}上述代码在自动代码清理期间不会更改。当然,我可以手动执行此操作,而且我仍然可以从R#中获得快速操作菜单选项以在单个
我正在读这个UpdateLayout()method在MSDN中。它说:Ensuresthatallvisualchildelementsofthiselementareproperlyupdatedforlayout.但我不明白布局未正确更新是什么意思。我已经使用Silverlight/WPF一年多了,但我仍然没有使用过这种方法。那么有人可以给我一个需要使用这种方法的例子吗?这样我才能真正了解它的作用以及何时应该使用它? 最佳答案 如果您需要一个控件来立即完成它的布局,您可能想要调用它,以便您可以基于它做一些事情。例如,如果您想根
已更新:有关我如何实现该解决方案,请参阅问题结尾。很抱歉这个问题措辞不佳,但我不确定如何提出它才是最好的。我不确定如何设计一个可以重复使用的解决方案,其中大部分代码每次实现时都完全相同,但部分实现每次都会发生变化,但遵循相似的模式。我尽量避免复制和粘贴代码。我们有一个内部数据消息系统,用于跨不同机器上的数据库更新表。我们正在扩展我们的消息服务以将数据发送给外部供应商,我想编写一个简单的解决方案,如果我们决定将数据发送给多个供应商,可以重复使用。该代码将被编译成一个EXE文件并定期运行以向供应商的数据服务发送消息。以下是代码作用的粗略概述:publicclassOutboxManager
哪个在结构上更好?classProgram{staticvoidMain(string[]args){try{using(Foof=newFoo()){//somecommandsthatpotentiallyproduceexceptions.}}catch(Exceptionex){Console.WriteLine(ex.Message);}}}或者...classProgram{staticvoidMain(string[]args){using(Foof=newFoo()){try{//somecommandsthatpotentiallyproduceexceptions.
我正在我的View状态中存储一些对象,我想知道制作一个类Serializable是否有任何缺点?让所有的类都Serializable是不好的做法吗? 最佳答案 首先。避免View状态。通常序列化(文本)用于传输对象。您应该避免将任何不是DTO(数据传输对象)或消息类的类标记为可序列化。我们这样做有几个原因。以序列化格式获取您的类的内容可能没有非DTO类的方法信息(在原始程序集中)。其次,一个类可能引用一个资源(数据库连接、文件句柄等)不要序列化这些,因为反序列化不会重新建立资源连接和状态,除非明确设计,但这仍然是一个坏主意。所以总而