Насколько я понимаю, каждый тип (кроме некоторых примитивов, таких как int и string), используемый в WCF ServiceContract, должен быть объявлен с атрибутом 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;
// ...
}