Это действительно будет зависеть от точного сценария (который является расплывчатым), но наиболее вероятной причиной будут различные ссылки / версии сборки. Возможно, у вас есть некоторый код «верхнего уровня», который ссылается на версию «A» библиотеки DLL и ссылается на библиотеку, которая ссылается на версию «B» аналогичной библиотеки DLL; то:
SomeType foo = someObj.Foo;
будет иметь SomeType
(слева) от "A", с .Foo
SomeType
от "B". Убедитесь, что во всех ваших проектах используется одна и та же версия всех сборок, на которые вы полагаетесь.
Другой сценарий - это одно и то же имя в разных пространствах имен, но это немного очевидно, и я подозреваю сообщение об ошибке сделало бы это очевидным?
Существуют и другие сценарии, в которых типы с одинаковыми именами в одном и том же пространстве имен (но в разных сборках) конфликтуют друг с другом; здесь могут помочь "внешние псевдонимы", но это полноценный PITA для работы.