Error CS0117: Namespace.Eine enthält keine definition für das Interface

Ich bin immer der Fehler:


'- Namespace.Ein " enthält keine definition für 'MyObjectInterface' und keine Erweiterungsmethode 'MyObjectInterface' die Annahme ein erstes argument vom Typ ...


Habe ich mir angeschaut diese und diese und weder scheint zu gelten.

Der code sieht wie folgt aus:

public abstract class Base
{
    public IObject MyObjectInterface { get; set; }
}

public class A : Base
{
    /**/
}

public class Implementation
{
    public void Method()
    {
        Base obj = new A();
        obj.MyObjectInterface = /* something */; //Error here
    }
}
  • IObject definiert ist, in einer separaten assembly, aber:

    • IObject ist in einer separaten assembly/namespace
    • Basis und sind in der gleichen assembly/namespace mit jeweils richtige using-Direktiven
    • Umsetzung wird in einem Dritten separaten assembly, namespace, auch mit richtigen using-Direktiven.
  • Casting, bevor Sie versuchen, MyObjectInterface nicht funktioniert

  • Speziell, ich versuche, den Wert des MyObjectInterface, um ein mock-Objekt (obwohl, erstellte ich ein fake anstatt ohne Erfolg)

Ich habe versucht, alles, was ich denken kann. Bitte helfen Sie, bevor ich Sie verliere mehr Haare.

Bearbeiten
Ich kann den Fehler reproduzieren, indem Sie erstellen eine test-app, das ist, warum ich hier bin und warum ich bin frustriert.

@Reed Copsey: /* irgendwas */ist entweder ein NUnit.DynamicMock(IMailer).MockInstance oder ein Fake-Objekt, die ich erstellt, erbt von IObject und gibt einfach zurück, Konserven Werte.

@Preet Sangha: ich überprüft und keine andere Versammlung, auf das verwiesen wird, hat eine definition für ein IObject (speziell, es ist ein so genanntes IMailer).

Sache ist, dass intellisense greift das Eigentum, aber, wenn ich kompiliere, bekomme ich CS0117. Ich kann auch 'Gehe Zu Definition" in der Umsetzung, und es dauert mich, wo ich es definiert.

  • Ich habe ein dummy-Projekt, und mit IObject in separaten assembly, und dieser code in einen anderen. Alles ist Zusammenstellung in Ordnung. Ich vermute stark, es ist anderes Problem, das dieses problem verursacht. Haben Sie bestätigt, indem sichergestellt wird unter Verweise auf IObject nicht abgeholt, von einem anderen Ort aus der Umsetzung, die Sie benötigen.
  • Was ist die Meldung "Type" und wie ist "/* irgendwas */" definiert? Diese zwei Fragen sind entscheidend für die Beantwortung, die Sie richtig...
  • könnte es sein, das GAC?
InformationsquelleAutor Steven Evers | 2010-05-12
Schreibe einen Kommentar