WCFコールを作成しようとしていますが、コールがクライアントに返されたときにこのエラーが発生し続けます。私はそうのような非NULL値にすべての小数の値を設定しようとしました:NetDispatcherFaultException:ValueType 'System.Decimal'をNullにすることはできません。
[FaultContract(typeof(AdaptFaultDetail))]
[FaultContract(typeof(BLFaultDetail))]
public IRecord SaveRecord(IRecord theRecord, string transactionId, bool reloadRecordAfterSave)
{
var retVal = GeneralServiceCalls.SaveRecord(theRecord, transactionId, reloadRecordAfterSave);
foreach (var property in retVal.GetType().GetProperties())
{
if (property.PropertyType == typeof(decimal) && property.GetValue(retVal) == null)
{
property.SetValue(retVal, 0);
}
}
return retVal;
}
しかし、私はまだ、クライアント側でこのエラーを取得:デシリアライズしようとしているときに
フォーマッタが例外をスローしましたメッセージ:パラメータhttp://tempuri.org/:SaveRecordResultを逆シリアル化しようとしているときにエラーが発生しました。 InnerExceptionメッセージは 'ValueType' System.Decimal 'はnullにはなりません。'詳細については、InnerExceptionを参照してください。
内部例外:
System.Runtime.Serialization.SerializationException:ValueTypeに 'System.Decimalのは' nullにすることはできません。 ReadAssetCustomFromXmlで (XmlReaderDelegator、XmlObjectSerializerReadContext、[] XmlDictionaryString、[] XmlDictionaryString)私は、エラーを引き起こしているのか分からない
。
内部例外の内容を表示してください。そして、SaveRecordResultの定義を投稿してください。 – khlr
どこでその定義を見つけることができますか?私はそれがちょうど生成されたWCFのものだと思った。 –
SvcUtil.exeはプロキシクラスを生成します。カーソルをSaveRecordResultのどこかに置き、F12を押します。あなたはサービスをコントロールしていますか? – khlr