我是WCF的新手,我想为数据库创建API。
DB orm是由EntityFramework构建的,我包装了get one的所有功能,找到了许多功能并保存了每个Entity必须实现的接口。
我发现WCF服务只能加载一个接口,但是我有很多接口,并且每个接口都由多个类实现。
我的主界面:
[DataContract]
public enum Entity
{
[EnumMember]
Branch,
[EnumMember]
Category,
[EnumMember]
Client,
[EnumMember]
ClientInterest,
[EnumMember]
Condition,
[EnumMember]
Event,
[EnumMember]
EventType,
[EnumMember]
Floor,
[EnumMember]
GlobalSettings,
[EnumMember]
Operation,
[EnumMember]
Picture,
[EnumMember]
Price,
[EnumMember]
Rate,
[EnumMember]
RealEstate,
[EnumMember]
Role,
[EnumMember]
Sale,
[EnumMember]
Status,
[EnumMember]
User
}
[DataContract]
public enum Hierarchy
{
[EnumMember]
Realtor,
[EnumMember]
Branch,
[EnumMember]
Chain,
[EnumMember]
NonRelevant
}
[ServiceContract]
public interface IBL
{
[OperationContract]
Dictionary<string, string> AuthenticateUser(string username, string password);
[OperationContract]
string GetLoggedUserUsername();
[OperationContract]
string GetLoggedUserBranchName();
[OperationContract]
void DisconnectUser();
[OperationContract]
IBLManage GetBLManage(Entity entity);
[OperationContract]
IBLReport GetBLReport(Entity entity);
[OperationContract]
IBLSearch GetBLSearch(Entity entity);
[OperationContract]
List<string> GetRoles(Dictionary<string, string> errorsDict);
[OperationContract]
List<string> GetEventTypes(Dictionary<string, string> errorsDict);
[OperationContract]
List<string> GetConditions(Dictionary<string, string> errorsDict);
[OperationContract]
List<string> GetStatuses(Dictionary<string, string> errorsDict);
[OperationContract]
List<string> GetOperations(Dictionary<string, string> errorsDict);
[OperationContract]
List<string> GetCategories(Dictionary<string, string> errorsDict);
}
子接口:
[ServiceContract]
public interface IBLManage
{
[OperationContract]
Dictionary<string, string> Save(Dictionary<string, object> entityDict, bool isNewEntity = true);
[OperationContract]
object GetEntity(Dictionary<string, object> entityDict, Dictionary<string, string> errorsDict);
}
如何在一次服务中完成?
还是我必须创建许多服务? (大约20个)
如果我创建了很多文件,是否可以在同一exe文件中运行它们?
我发现有关接口返回值的this question,但链接已断开,而不是我遇到的整个问题。
非常感谢你。
最佳答案
您可以按服务实现多个接口,并根据需要使用同一端点。
一个例子:
public partial class MyServices
{
}
public partial class MyServices: IBL
{
// IBL implemnetantion
}
public partial class MyServices : IBLManage
{
// IBLManage implementation
}
等等。
您也可以使用继承,如@Tim注释。