为什么在C#中使用KnownType属性不足以包含DLL?使用负责构建的TFS的Visual Studio 2012,我正在一个项目中,服务需要使用此属性,如下所示:
using Project.That.Contains.RequiredClassName;
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, Namespace="SomeNamespace")]
[KnownType(typeof(RequiredClassName))]
public class Service : IService { }
但是要将所需的DLL包含在bin输出中,因此我们的生成版本中包含了安装程序,我必须将以下内容添加到Service的构造函数中:
public Service() {
// Exists only to force inclusion
var ignore = new RequiredClassName();
}
因此,假设包含RequiredClassName的项目本身由包含Service的项目引用,为什么不使用KnownType属性足以在输出中包含DLL?