指定」字段只在那些結構可選參數生成。(INT,日期時間,小數等)。所有這些變量將與指定的名稱生成的附加變量。
由於‘指定’字段是隻在可選參數上生成,如果您將PublishEnrollmentProfile方法的參數放置在DataContract中並將MethodID上的DataMember屬性設置爲[DataMember(IsRequired = true)],則指定的字段應該消失,除非這是可選字段如果你想離開它,它會是怎樣的。
這裏是blog posting與一些樣品
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;
}
.
.
.
}
因此,您有一個「請求」對象,您傳遞到具有字段siteName和methodId的WCF服務。在我提供的methodId的示例中,這將消除「指定」字段。
請參閱http://stackoverflow.com/questions/2284760/what-are-these-extra-parameters-in-my-asmx-proxy-methods。這是正常的和預期的。 – 2011-01-11 03:42:08