Заданные "поля создаются только для необязательных параметров, которые являются структурами. (Int, datetime, decimal и т. Д.). У всех таких переменных будет дополнительная переменная, созданная с именем Specified.
Поскольку поля «Заданные» создаются только для необязательных параметров, если вы поместили параметры для метода PublishEnrollmentProfile в DataContract и задали для атрибута DataMember для methodID значение [DataMember (IsRequired = true)], указанное поле должно перейти прочь, если только это необязательное поле, в этом случае вы захотите оставить все как есть.
Вот блог с некоторыми примерами.
UPDATE
Итак, у вас есть контракт на эксплуатацию.
[OperationContract]
PublishResult PublishEnrollmentProfile(string siteName, int methodId,...);
Если параметры этого метода не являются обязательными, вы должны создать DataContract и переопределить OperationContract следующим образом:
{
[OperationContract]
PublishResult PublishEnrollmentProfile(PublishEnrollmentProfileRequest request);
}
И тогда у вас есть такой DataContract, как этот.
[DataContract]
public class PublishEnrollmentProfileRequest
{
private string _siteName;
[DataMember]
public string siteName
{
get;
set;
}
private int _methodId;
[DataMember(IsRequired=True)]
public int methodId
{
get;
set;
}
.
.
.
}
Итак, у вас есть объект «request», который вы передаете в службу WCF с полями siteName и methodId. В приведенном мною примере methodId теперь требуется, это исключит поле «Указано».