我是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);
}


c# - 在WCF中返回许多接口(interface)-LMLPHP

如何在一次服务中完成?
还是我必须创建许多服务? (大约20个)
如果我创建了很多文件,是否可以在同一exe文件中运行它们?

我发现有关接口返回值的this question,但链接已断开,而不是我遇到的整个问题。

非常感谢你。

最佳答案

您可以按服务实现多个接口,并根据需要使用同一端点。

一个例子:

public partial class MyServices
{
}

public partial class MyServices: IBL
{
   // IBL implemnetantion
}

public partial class MyServices : IBLManage
{
  // IBLManage implementation
}


等等。

您也可以使用继承,如@Tim注释。

10-05 21:11
查看更多