Вы уверены, что это не работает?
Bind<ISomething>()
.To<Something>()
.WithConstructorArgument("arg1", "somevalue")
.OnActivation(fun x -> x.DoSomething())
(отметьте один пробел перед .
с)
Да, все в порядке:
type ISomething = interface end
type Something = class end
type Foo() =
member this.To<'a>() = this //'
member this.WithConstructorArgument(s1,s2) = this
member this.OnActivation(x:Foo->unit) = this
member this.DoSomething() = ()
let Bind<'a>() = new Foo() //'
let r =
Bind<ISomething>()
.To<Something>()
.WithConstructorArgument("arg1", "somevalue")
.OnActivation(fun x -> x.DoSomething())
Пока у вас есть несколько пробелов, когда вы пытаетесь продолжить одно выражение в несколько строк, все в порядке.
(Обратите внимание, что конвейерная обработка в целом не будет работать, если у вас нет API, предназначенных для этогос параметрами метода карри.)