C# ';对象';不包含对';Foo';

C# ';对象';不包含对';Foo';,c#,C#,我已经找了很多关于这个问题的答案,但在任何地方都找不到。我有两个总成:“发动机”总成和“主”总成。在引擎中,我有一个包含一些字典的单例管理器。像这样: namespace Engine { public class ResourceManager { protected static ResourceManager rscMngr = new ResourceManager(); private Dictionary<string, WTileMap> maps =

我已经找了很多关于这个问题的答案,但在任何地方都找不到。我有两个总成:“发动机”总成和“主”总成。在引擎中,我有一个包含一些字典的单例管理器。像这样:

namespace Engine
{
public class ResourceManager
{
    protected static ResourceManager rscMngr = new ResourceManager();

    private Dictionary<string, WTileMap> maps = new Dictionary<string, WTileMap>();

    public Dictionary<string, WTileMap> Maps
    {
        get { return maps; }
    }

    public static ResourceManager Instance
    {
        get { return rscMngr; }
    }

}
}
但是,当我编译时,它会给我以下错误:

Engine.ResourceManager“”不包含“映射”和的定义 没有接受类型为的第一个参数的扩展方法“映射” 找不到“Engine.ResourceManager”(您是否缺少使用 指令或组件引用?)

但是,如果我将“maps”变量公开并通过那里访问它,它就会起作用。或者如果数据类型是一个原语,如int、float、string等


我不知道这里有什么问题。

在哪个程序集中定义了“WTileMap”?“Main”程序集是否引用了中定义了“WTileMap”的程序集?WTileMap也在引擎程序集中,并且主程序集可以访问引擎程序集。是否确实使用了正确的
ResourceManager
,并且没有其他同名类?另外,您是否尝试过重建这两个项目?如何引用引擎部件?听起来好像没有看到最新的版本。如果你的项目以这种方式交织在一起,那么将它们放在一个解决方案中会更容易,这样依赖关系就会自动建立。gameInfo.StartingMap会返回什么?
Marker startMarker = ResourceManager.Instance.Maps[gameInfo.StartingMap].ObjectLayer.markers[gameInfo.MapMarker];