выполнить код при первом вызове в dll - PullRequest
2 голосов
/ 22 сентября 2010

Я AC # библиотека классов.Есть ли в любом случае, что метод может быть запущен при первом вызове и только при первом вызове DLL?то есть.аналогично веб-приложению - global.asax - метод Application_Start.

Ответы [ 3 ]

2 голосов
/ 22 сентября 2010

Имейте статический инициализатор на вашем объекте интерфейса.Тем не менее, вы должны предоставлять доступ к этому классу Interface только через вашу DLL и делать все другие функциональные вызовы внутренними.

public class DllInterface
{
    static DllInterface()
    {
        // Do initialization magic here
    }

    // Do other stuff
}
2 голосов
/ 22 сентября 2010

Я некоторое время искал его и нашел этот сайт .Это выглядит очень многообещающе, но у меня не было времени, чтобы протестировать его самостоятельно.

(В настоящее время сайт закрыт на техническое обслуживание. Вот сайт из google cache .)

1 голос
/ 22 сентября 2010

Интересный вопрос. Я не знаю, если в C # вы можете сделать это, но я так не думаю. Что вы можете сделать, это создать статический конструктор, который будет вызываться перед любым другим вызовом в классе:

public class Foo
{
   static Foo()
   { 
      Console.WriteLine("called first time only");
   }

   public Foo()
   {
      Console.WriteLine("called every new object"); 
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...