Immer die Compilerfehler CS0122 - "Mitglied" ist unzugänglich wegen seiner Schutz-level - beim Zugriff auf eine Klasse in einem anderen Projekt

Ich versuche in den Griff zu bekommen mit NUnit - ich habe es installiert und starten Sie es erfolgreich in einem Projekt. Ich will, dass productioncode trennen von testcode, also Schreibe ich tests, die in einem anderen Projekt. Das Test-Projekt mit Verknüpfungen zum ursprünglichen Projekt. (IDE C# Express 2010)

Mein Testcode sieht so aus:

using NUnit.Framework;

namespace test.Import
{
    [TestFixture]
    class XMLOpenTest
    {
        [Test]
        public void openNotAPath(){
            try
            {
                production.Import.XMLHandler.open("Not A Path");
            }
            catch
            {
                Assert.Fail("File Open Fail");
            }
        }
    }
}

Ich weiß, ich könnte dies beheben, indem Sie die Produktion.Import.Klasse XMLHandler öffentlichkeit, aber ich will nicht ändern mein productioncode zu ermöglichen, diese Art von Tests.

Wie bekomme ich dieses? Kann ich änderungen an meinem testcode? Gibt es andere gute Möglichkeiten, Sie zu trennen von test-und Produktionscode in zwei Projekte? Gibt es Ressourcen für dummys, auf dem internet?

Machen Sie es *public* class XMLOpenTest.... es hat für mich gearbeitet Tonnen Zeiten 😉
öffentlich zu machen war alles, was ich brauchte im Mai Fall, wo ich war kopieren von Klassen zwischen den Projekten, die mit Referenzen, thx
Der Vorteil, dass es öffentlich ist, haben Sie es leichter einmal. Aber jetzt ist Ihre Klasse, die von außen sichtbar Ihre Montage. Das kann nicht sein, was Sie wollen auf lange Sicht. Wenn dies ist ein proof-of-concept Projekt, das vielleicht noch die bessere Lösung. Wenn dies für geschäftliche Zwecke sollten Sie sich Gedanken darüber, was andere Zugang haben, um nach dem release.

InformationsquelleAutor Johannes | 2010-12-09

Schreibe einen Kommentar