相关疑难解决方法(0)

未在.net4中调用的托管C++静态构造函数

我最近将一个项目从.NET 3.5移到了.NET 4.我使用的是C#,托管C++和非托管C++.

在我的一个托管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);                      
    }
};
Run Code Online (Sandbox Code Playgroud)

在.NET 3.5中曾经Dequeue()第一次调用它会触发静态初始化,它会运行静态构造函数.一旦我转移到.NET 4.0,从未调用静态构造函数.

我知道.NET 4.0中的静态初始化已经发生了变化,但根据我读到的所有内容,它应该可以正常工作.

.net c# c++-cli

2
推荐指数
1
解决办法
1184
查看次数

标签 统计

.net ×1

c# ×1

c++-cli ×1