如何为模块创建API?

时间:2019-05-16 16:23:06

标签: c# sockets

我有一个C#应用程序,它可以通过TCP套接字接收和发送消息。我制作了一个包含接口的C#库(dll),这样,想要通过该套接字发送信息的人实际上不必编写整个TCP部分即可编译应用程序,等等。

他只是使用库中提供的功能。

我的问题是:我如何在库中实现一个实际上通过现有应用程序发送消息(字符串,byte [],无关紧要)的函数?

该库实际上包含一个用于接收消息的函数,因此:

--->原始数据--->应用程序--->库---> dll实现库的接口

现在我需要做另一部分:

发送数据<---应用程序<---库<--- dll实现库的接口

namespace MyCustomAPI
{
    public interface I_Networking
    {
        /// <summary>
        /// Triggered when a message is received through the TCP socket
        /// </summary>
        /// <param name="message">The message received through the TCP socket</param>
        void HandleMessage(string message);


        /// TODO: Implement send message function
    }
}

我认为这是全部错误吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,则您正在尝试在dll中实现“发送消息”功能,但是该功能还需要对应用程序执行某些操作。 如果是这种情况,那么我建议您在库中提供一个接口,其中包含“发送消息”功能能够独立工作所需的所有参数,并在需要时返回一个对象或某些东西。

namespace MyCustomAPI
{
    public interface I_Networking
    {
        /// <summary>
        /// Triggered when a message is received through the TCP socket
        /// </summary>
        /// <param name="message">The message received through the TCP socket</param>
        void HandleMessage(string message);


        /// TODO: Implement send message function
        object SendMessage(object param1, object param2);
    }
}

这是separation of concerns方法。 dll应该只关心它应该做什么,而不是其他试图使用它的部分。