据我了解,WCF ServiceContract 中使用的每种类型(除了一些基本类型,如 int 和 string)都需要使用 ServiceKnownType 属性进行声明。但是,我已经构建了一个自定义对象,并且它可以毫无问题地通过我的 WCF 服务进行传输——即使我没有为它添加 ServiceKnownType。有人能解释一下为什么会这样吗?
[ServiceContract(CallbackContract = typeof(IMyServiceCallback))]
public interface IMyService
{
[OperationContract]
List<MyObject> LoadMyObjects();
}
[DataContract]
public class MyObject
{
[DataMember]
private int batchID;
[DataMember]
private int fileID;
[DataMember]
private string fileName;
[DataMember]
private DateTime importStartTime;
// ...
}