Я недавно переместил проект, над которым работаю, из .NET 3.5 в .NET 4. Я использую C #, Managed C ++ и Unmanaged C ++.
В одном из моих Managed C ++ (взаимодействие) У меня статический конструктор:
public ref class StaticPool : public BaseStaticPools
{
public:
static StaticPool()
{
InitializePools();
}
static Poolable^ Dequeue()
{
return (Poolable^)Dequeue(Poolable::typeid);
}
private:
static void InitializePools()
{
BaseStaticPools::CreatePool(Poolable::typeid);
}
};
В .NET 3.5 после первого вызова Dequeue()
будет запускаться статическая инициализация, которая запускает статический конструктор.После того, как я перешел на .NET 4.0, статический конструктор так и не был вызван.
Я знаю, что в статической инициализации в .NET 4.0 произошли изменения, но, как я прочитал, все должно работать нормально.