我是WCF的全新品牌,我想知道如何构建我的设计。 我想公开所有我的域对象的方法能够获取和设置它们的属性。我把它们全部分成了自己的界面。即)WCF多个服务合同
public interface IGroupDAO {
IEnumerable<Group> FindGroup(string criteria);
Group GetGroup(int groupID);
IEnumerable<Group> GetSubGroups(int groupID);
List<IDMatch> UpdateGroups(Group[] groups);
}
public interface IUserDAO {
IEnumerable<User> FindUser(string criteria);
IEnumerable<User> GetSubUsers(int userID);
User GetUser(int userID);
List<IDMatch> UpdateUsers(User[] users);
}
... etc
从,如果你为每个服务合约创建一个终点我明白的终点是所有独立的权利?我问的原因是,如果我想创建一个容纳所有更新语句的事务。即
CreateTransaction();
UpdateGroups(groups);
UpdateUsers(user);
CommitTransaction();
如果我分开暴露所有的服务合同,这是可能做到的吗?我希望确保在提交事务之前保存所有内容,以便我不会将数据模型置于未知状态。
我有一个想法是将所有的接口聚合在一起
public interface IAppDAO : IGroupDAO, IUserDAO {}
这样我可能暴露一切,很容易在需要时重新排序服务上的更新。因此,如果我必须在用户面前保存一组子组,则可以保存其他组或其他任何奇怪的情况。我想保留服务中的所有保存逻辑,以便客户端可以哑巴并说“保存所有这些东西”,然后在我的提交中,服务应该正确地重新排列所有内容并更新适当的来源。
让我知道,如果我疯了,或者如果我能以不同的方式建筑这个?
感谢
P.S)我有一个问题...如果我暴露我必须连接到每一个单独的权利多个服务合同?所以我必须分别验证每一个?
我还会公开DAO接口来获取对象吗?即GetUser(int id);我喜欢更新的想法,我可以通过所有的东西。 – HaxElit 2010-02-23 17:46:20
不,DAO接口是内部的,不应该暴露。您只公开将被客户端使用的方法。要实现那些依赖DAO接口的方法。 – 2010-02-23 17:56:03