Я создаю веб-сервис asp.net. У меня есть один класс, статический конструктор которого не вызван, когда я пытаюсь инициализировать объект этого класса. Я не могу понять это поведение. Внутри статического конструктора я читаю значения из файла web.config.
Вот часть кода:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
AppController extractor;
public Service()
{
try
{
extractor = new AppController();
}
catch(Exception ex)
{
// I am not getting exception at this point.
}
}
}
public class AppController
{
static string converterBatchFilePath = null;
static string personalProfileOutputFolderPath = null;
static AppController()
{
// reading some settings from web.config file
try
{
converterBatchFilePath = ConfigurationManager.AppSettings["WordToTextConverterBatFilePath"];
}
catch(Exception ex)
{ // }
}
public AppController()
{
// do some initialization
}
}
Во время отладки веб-службы я заметил, что только вызывающий конструктор получает вызов и управление никогда не переходит к статическому конструктору.
Кто-нибудь знает, почему это происходит?
Я использую VS 2008 Express Edition и С#.
ИЗМЕНИТЬ
На самом деле этот AppController - это консольный проект. Я добавил этот проект в качестве ссылки в проекте веб-службы, а затем использовал его. Если я использую AppController из командной строки, он отлично работает, но не работает из проекта веб-службы.