Как указать на метод в проекте, который будет выполнен внутри компонента библиотеки классов - PullRequest
0 голосов
/ 26 июля 2010

Раньше в моем проекте было достаточно многократно используемого кода, который я хотел бы поместить в проект библиотеки пользовательских классов, чтобы другие проекты могли использовать его повторно. Существует только один кусок кода, который требует настройки в коде, который зависит от проекта.

Как я могу ввести метод, который будет выполнен в моем проекте, внутри метода библиотеки классов? Я думал об использовании делегата, но я открыт для предложений. Если у вас есть какой-то код, я не очень хорош с делегатами, пожалуйста, пишите также.

1 Ответ

3 голосов
/ 26 июля 2010

Вы ищете различные способы для достижения IOC / Dependency Injection .Распространенным способом является использование параметра, который реализует:

interface IDoSomething
{
   void DoSomething(string myParam);
}

class MyLibrary
{
    public void DoLibraryStuff(IDoSomething iDoSomething, string extraParam)
    { iDoSomething.DoSomething("info");... }
}

Если вы хотите использовать делегатов, вы можете использовать:

class MyLibrary
{
    public void DoLibraryStuff(Action<string> doSomething, string extraParam)
    { doSomething("info");... }
}

Использование:

new MyLibrary().DoLibraryStuff(info => Console.WriteLine(info), "extraParam");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...