2

C# コードから請求書フィールド "freightamount" を更新しようとしています。文字列や Guid などの他のフィールドを更新することはできますが、Money の場合、請求書エンティティの作成または更新時に次のエラーが発生します。

There was an error while trying to serialize parameter      
 http://schemas.microsoft.com/xrm/2011/Contracts/Services:entity. The InnerException 
 message was 'Type 'Microsoft.Xrm.Sdk.Money' with data contract name 
'Money:http://schemas.microsoft.com/xrm/2011/Contracts' is not expected. Consider using a 
DataContractResolver or add any types not known statically to the list of known types - 
for example, by using the KnownTypeAttribute attribute or by adding them to the list of 
 known types passed to DataContractSerializer.'.  Please see InnerException for more 
 details.

ここに私のコードの一部があります:

Microsoft.Xrm.Sdk" "への参照を使用します

次にコードで:

 invoice.Attributes.Add(new KeyValuePair<string, object>("freightamount",  new Microsoft.Xrm.Sdk.Money (row.amount)));

は 10進row.amount値です。

4

1 に答える 1

1

web.config に追加して、エンティティ クラスの KnownTypeAttribute として Money を追加しようとしましたか?

<system.runtime.serialization>
    <dataContractSerializer>
        <declaredTypes>
            <add type="Microsoft.Xrm.Sdk.Entity, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                <knownType type = "Microsoft.Xrm.Sdk.Money, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>                 
             </add>
        </declaredTypes>
    </dataContractSerializer>
</system.runtime.serialization>
于 2014-06-24T14:20:56.963 に答える