考虑两个 .net dll。首先,“application.dll”包含主要业务逻辑和数据访问代码。第二个“webservice.dll”主要由 WebMethod 组成,这些 WebMethod 链接到 application.dll 的对象和方法,以便为现有代码提供 Web 服务调用。
在不需要重新编译 webservice.dll 的情况下,可以或不可以对 application.dll 进行哪些更改(例如添加新类、向现有类添加新字段或方法等)?
大多数事情都会好起来的;一些会破坏它的事情:
- 删除*使用的类型(除非您使用类型转发)
- 删除*使用的方法(包括构造函数)
- 更改(使用的)方法的签名
- 将公共字段更改为属性(已使用)
- 如果使用序列化,则更改序列化内部结构
- 向接口添加方法,其中第二个 dll 具有实现该接口的类型
- 将抽象方法添加到在第二个 dll 中继承的基类
- 如果(滥用)使用 hacky 反射,则几乎所有内部内容
- 向泛型类型/方法添加约束
- 将类型标记为
sealed
当它在第二个dll中被继承时
- 添加一个字段到
struct
如果调用者使用成员初始化而不是构造函数初始化
(删除包括更改对非公开内容的可访问性)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)