我有一个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
}
}
我认为这是全部错误吗?
答案 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应该只关心它应该做什么,而不是其他试图使用它的部分。