Error CS0117: Namespace.A does not contain definition for Interface..
Posted
by SnOrfus
on Stack Overflow
See other posts from Stack Overflow
or by SnOrfus
Published on 2010-05-12T20:57:51Z
Indexed on
2010/05/12
21:54 UTC
Read the original article
Hit count: 474
I'm getting the error:
'Namespace.A' does not contain a definition for 'MyObjectInterface' and no extension method 'MyObjectInterface' accepting a first argument of type ...
I've looked at this and this and neither seems to apply.
The code looks like:
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 is defined in a separate assembly, but:
- IObject is in a separate assembly/namespace
- Base and A are in the same assembly/namespace each with correct using directives
- Implementation is in a third separate assembly namespace, also with correct using directives.
Casting to A before trying to set MyObjectInterface doesn't work
- Specifically, I'm trying to set the value of MyObjectInterface to a mock object (though, I created a fake instead to no avail)
I've tried everything I can think of. Please help before I lose more hair.
edit I can't reproduce the error by creating a test app either, which is why I'm here and why I'm frustrated.
@Reed Copsey: /* something */ is either an NUnit.DynamicMock(IMailer).MockInstance or a Fake object I created that inherits from IObject and just returns canned values.
@Preet Sangha: I checked and no other assembly that is referenced has a definition for an IObject (specifically, it's called an IMailer).
Thing is that intellisense picks up the Property, but when I compile, I get CS0117. I can even 'Go To Definition' in the implementation, and it takes me to where I defined it.
© Stack Overflow or respective owner