模型的定义:
type ItemEvent =
| ItemCreated of ItemCreated
and ItemCreated = { timestamp:DateTime; id:ItemId; name:string; description:string option } interface IEvent
以下是我想要调用的方法的接口:
type IItemWriteAccess =
abstract Update: ItemEvent -> Result<unit, DomainMessage>
这是C#代码:
public class ItemEventHandlers
{
private readonly IItemWriteAccess _repository;
public ItemEventHandlers(IItemWriteAccess repository)
{
_repository = repository;
}
public void Handle(ItemCreated msg)
{
if(msg == null) throw new ArgumentNullException("msg");
_repository.Update(msg); // this doesn't work
}
}
这会产生以下错误消息:
Argument 1: cannot convert from 'DomainModels.ItemCreated' to 'DomainModels.ItemEvent'
向ItemEvent
的向上转换也不起作用。
我该如何解决这个问题?
答案 0 :(得分:1)
由于$.validator.addMethod('le', function (value, element, param) {
return this.optional(element) || parseInt(value) <= parseInt($(param).val());
}, 'Invalid value');
采用Update
,因此ItemEvent
实例不能作为参数传递。
我必须创建一个ItemCreated
并将ItemEvent
实例传递给构造函数,如下所示:
ItemCreated
然后我可以将其传递给var @event = ItemEvent.NewItemCreated(msg);
:
Update