gpt4 book ai didi

主构造函数上的 F# ImportingConstructor

转载 作者:行者123 更新时间:2023-12-01 15:35:18 24 4
gpt4 key购买 nike

我正在使用 MEF,我想在我的主构造函数上添加一个 ImportingConstructorAttribute。我正在使用以下技巧来指定一个 ImportingConstructor,它不会破坏我的对象的封装或不变性。

[<Export>]
type IntradayEngine(logger:ILogger, dummy) =

[<ImportingConstructor>]
new(logger) =
IntradayEngine(logger, None)

member x.Start =
ignore

member x.Stop =
ignore

我看到的唯一其他方法是: 1. 通过属性上的 ImportAttribute 使用属性注入(inject)(这需要使该属性可变,我不喜欢属性注入(inject)) 2. 创建一个“默认”主构造函数并添加另一个构造函数,我在其上添加我的依赖项(允许我的对象处于我不想要的状态)

有没有办法在不破坏对象的可访问性、可变性或状态的情况下执行此操作?

最佳答案

您可以通过将属性放在类型名称和参数之间来将其放在主构造函数上。

[<Export>]
type IntradayEngine [<ImportingConstructor>](logger:ILogger) =

member x.Start =
ignore

member x.Stop =
ignore

关于主构造函数上的 F# ImportingConstructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com