Я использую стороннюю сборку, которая поставляется в двух разных версиях. Я компилирую один из них и загружаю правильную версию во время выполнения.
Версия, с которой я компилировал, выглядит как (V2.0.0)
Код: Выделить всё
public class A { public int P1 { get; set; } }
public class B : A { public int P2 { get; set; } }
Код: Выделить всё
public class A { public int P1 { get; set; } public int P2 { get; set;} }
public class B : A { }
Код: Выделить всё
public static void Main() {
var b = new B();
b.P2 = 3;
}
Интуитивно я могу это понять. В скомпилированной версии есть ссылка на B::P2, которой не существует, но это также кажется странным, поскольку B::P2 находится в общедоступном API B и то, что он реализован в A::P2, является деталью, которая не должна это (или я надеялся, что это не должно) иметь значение.
Я, конечно, могу решить эту проблему путем «перекомпиляции» правильной версии, но тогда я предполагаю, что проблема будет с V2.0.0 вместо этого.
Есть ли способ избежать наличия двух версий моего приложения?
Если это имеет значение, сторонняя сборка — это .NetFramework, а моя код — DotNet 8.
Подробнее здесь: https://stackoverflow.com/questions/791 ... public-api
Мобильная версия