Как создать API для модулей? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть приложение на C #, которое получает и отправляет сообщения через TCP-сокет. Я создал библиотеку C # (dll), которая содержит интерфейсы, поэтому кому-то, кто хотел бы отправлять информацию через этот сокет, на самом деле не нужно писать всю TCP-часть, компилировать приложение и т. Д.

Он просто использует функции, которые предусмотрены в библиотеке.

Мой вопрос таков: как бы я реализовал в библиотеке функцию, которая фактически отправляла бы сообщение (строка, байт [], не имеет значения) через уже существующее приложение?

Библиотека фактически содержит функцию для сообщения, полученного так:

---> необработанные данные ---> приложение ---> библиотека ---> интерфейсы библиотеки, реализующие dll

Теперь мне нужно выполнить другую часть:

отправка данных <--- application <--- library <--- dll реализующие интерфейсы библиотеки </p>

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 голосов
/ 16 мая 2019

Если я правильно понимаю, вы пытаетесь реализовать функцию dll message в вашей 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);
    }
}

Это подход разделения интересов . DLL должен интересоваться только тем, что он должен делать, а не другой частью, пытающейся его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...