Question

I have written a console application in C# /VS2008. In that I have multiple classes declared without specifying any accessibility modifier. Like

Namespace MyNamespace
{
    Class MyClass
    {
    ..

    }
}

Now I added a new console application for testing purpose. I added reference to NUnit framework dll. And then a reference to my main project dll. But when I try to create an object of MyClass into my TestFixture class, then I get an error like "MyNamespace.MyClass is inaccessible due to its protection level"

Do I need to create my class as public? But what if my project cannot afford it?

Was it helpful?

Solution

The class needs to be public if you want it to be accessible from another assembly:

namespace MyNamespace
{
    public class MyClass
    {

    }
}

If your project cannot afford it you may take a look at [InternalsVisibleTo] attribute.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top