我通常可以創建一個名爲SalesItem
的類實例,並將其作爲參數傳遞給Web服務,如webService.CreateSalesitem(New SalesItem())
這很好。基本的WCF問題
然後,我將我的SalesItem
類分類。我叫它GP_Item_SIM_Product
。但是,當我嘗試將此類作爲參數傳遞給我的Web服務時,我得到一個異常。 webService.CreateSalesitem(new GP_Item_SIM_Product()
)
這裏是個例外:
而試圖序列參數 http://schemas.microsoft.com/dynamics/gp/2010/01:salesItem時出錯。 InnerException消息'數據'類型'IMS.GP_Item_SIM_Product' 合同名稱 'GP_Item_SIM_Product:http://schemas.datacontract.org/2004/07/IMS'爲 不是預期的。考慮使用DataContractResolver或將未知的任何類型 靜態添加到已知類型的列表中 - 例如,使用KnownTypeAttribute屬性的 或將其添加到傳遞給DataContractSerializer的已知類型的列表 。有關更多詳細信息,請參閱 InnerException。
這裏是我的子類:
Imports System.ServiceModel
Imports GP_1.DynamicsGPClient
Imports GP_1.Microsoft.Dynamics.GP
Imports GP_1.Microsoft.Dynamics.Common
Imports SierraLib
Imports GP_1.GP
Imports GP_1
Imports System.Runtime.Serialization
< DataContract() > _
Public Class GP_Item_SIM_Product
Inherits SalesItem
Dim SIMProduct As Products
Dim greatPlainsRunner As GPRunner
Public Sub New(ByVal gpr As GPRunner, ByVal product As Products)
SIMProduct = product
greatPlainsRunner = gpr
SetValues()
End Sub
Private Sub SetValues()
Me.Key = New ItemKey() With {.Id = SIMProduct.MFGPN}
Me.Description = Description
Me.CurrentCost = New MoneyAmount() With {.Currency = Defaults.usCurrency, .Value = CDec(SIMProduct.Cost)}
Me.StandardCost = New MoneyAmount() With {.Currency = Defaults.usCurrency, .Value = CDec(SIMProduct.Price)}
Me.IsDiscontinued = Not SIMProduct.Enabled
Me.SalesTaxBasis = IIf(CBool(SIMProduct.Taxed = True),
GP_1.Microsoft.Dynamics.GP.SalesTaxBasis.Taxable,
GP_1.Microsoft.Dynamics.GP.SalesTaxBasis.Nontaxable)
End Sub
End Class
任何想法如何,我可以修改我的類,以便它可以被髮送到Web服務。我認爲這與我添加的這個課程中的兩個領域有關。不知道我是否需要將它們標記爲任何特殊的東西。
謝謝。我嘗試將它添加到類聲明中: _ _ Public Class GP_Item_SIM_Product'。但是沒有... –
user489041