假设我们在程序集A.dll的版本1中有类X:
class X { SomeType Property { set; get; } }
然后在程序集A.dll的版本2中:
class X { SomeType Property { set; get; } SomeType OtherProperty { set; get; } }
现在假设我们有一个第二个汇编B.dll加载A.dll并使用X.添加属性OtherProperty会打破ABI吗? B.dll会不会使用A.dll / X?如果没有,声明的顺序会有什么区别吗?如果属性是虚拟的,是否有所作为?
我想我真的在问:ABI的一般规则是什么?我知道在发布界面之后更改界面是件坏事,但我真的希望能够在某些实例中添加属性,而无需添加子类.