У меня была одна и та же проблема (ну, надеюсь, тоже). В любом случае, это была моя версия ntwdblib.dll, которая устарела в моей папке PHP.
http://dba.fyicenter.com/faq/sql_server_2/Finding_ntwdblib_dll_Version_2000_80_194_0.html
Очевидно, что B не относится к типу A, и наоборот:
Невозможно привести B к A. Вы можете только приведение к типам IB или IA.
Вы можете решить эту проблему несколькими способами, одним из которых является то, как сказал Гилад Грин в своем ответе, или также реализовав метод конвертации:
public static implicit operator A(B b)
{
//your code to convert from B to A
}
public static implicit operator B(A a)
{
//your code to convert from A to B
}
Поскольку B реализует как IA, так и IB, вы не можете напрямую разыграть и друг от друга, если вы не внедрите что-то вроде фрагмента кода в этом ответе.