ServiceStack を使用して redis ハッシュにオブジェクトを追加しようとしています。ただし、redis ハッシュに送信しようとしているオブジェクトの 1 つに null プロパティがあると、オブジェクトが破損し、文字列 例外のインスタンスに設定されていない文字列参照が取得されます。
誰かが私がやりたいことをする正しい方法を指摘できますか?この場合、オブジェクトをredisハッシュとして保存し、いくつかのプロパティをnullに設定します。
問題を示すスニペットを次に示します。
public interface SomeInterface
{
string Id {get;set;}
string Name {get;set;}
DateTime? DateScheduled {get;set;}
DateTime? DateUnscheduled {get;set;}
ISomeInterface SomeNeededObject {get;set};
}
public class SomeClass : SomeInterface
{
public string Id {get;set;
public string Name {get;set;}
public DateTime? DateScheduled {get;set;}
public DateTime? DateUnscheduled {get;set;}
public ISomeInterface SomeNeededObject {get;set};
// Other useful properties/methods
}
public class SomeService :Service
{
public void SomeMethod( ISomeInterface objectToSendToHash)
{
SomeClass c = new SomeClass()
{
Id = "1",
Name = "Name1",
DateScheduled = DateTime.Now
}; // creates a SomeClass with DateUnscheduled and SomeNeededObject properties set to null
using (IRedisClient redisClient = this.MyRedisClient)
{
var redis = redisClient.As<ISomeInterface>();
redis.StoreAsHash(objectToSendToHash); //throws exception because either DateUnscheduled, or SomeNeededObject properties are null!
}
}
}