为什么我的C ++代码看不到这个C#类成员?

时间:2016-11-02 15:32:40

标签: c# c++

我在C#项目中有几个自定义类,然后我在C ++项目中引用它。 C#代码看起来像这样

namespace AllOptions
{
    public class AllOptions {
        public AlgorithmOptions algOptions{ get; set; }
        public DatabaseOptions dataOptions{ get; set; }
    }

    public class AlgorithmOptions {
        List<Algorithm> algorithms { get; set; }

        public void SetDefaults(){
            this.algorithms.Clear();
        }
    }
    public class Algorithm {
        public bool AllowSalt { get; set; }
    }
    public class DatabaseOptions {
        public List<string> databaseSrouces { get; set; }
    }
}

然后从C ++我试图访问AllOptions的各个部分,但并非所有部分都通过。

//Is declared at the beginning
public: VerifyOptions::VerifyOptions Options;

//Then later on I try to access the database options and algorithm options
this->Options.databaseOptions->databaseSources = someStringList; //works fine

//This cannot find the algorithm list
this->Options.algorithmOptions->algorithms = someAlgorithmList; //does not work

算法说&#34; Class AllOptions :: AlgorithmOptions没有成员算法&#34;。为什么C ++代码看不到这个特定的C#成员?

编辑我的问题被标记为可能与此Default access modifier in C#问题重复。但是我认为这些是导致相同答案的不同问题。如果我认为我错了,请再次标记,我会改变它。

1 个答案:

答案 0 :(得分:7)

x是私人会员。只有包含类才能访​​问其私有成员。相比之下,AlgorithmOptions.algorithms是公共成员,您可以从任何地方访问它。