This would really depend on the exact scenario (that is vague), but the most likely cause would be different assembly references / versions. Perhaps you have some "top level" code that references version "A" of a dll, and references a library which references version "B" of a similar dll; then:
SomeType foo = someObj.Foo;
would have the SomeType
(on the left) from "A", with .Foo
the SomeType
from "B". Try ensuring that all your projects are using the same version of all the assemblies you rely on.
Another scenario is the same name in different namespaces, but that is a bit of an obvious one, and I suspect the error message would make this obvious?
There are some other scenarios where types with the same names in the same namespace (but different assemblies) conflict with eachother; here "extern aliases" can help, but are a complete PITA to work with.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…