は、対話型F#でこれを実行してみ:F F#ソリューション対インタラクティブ#とWCF
#r "System.ServiceModel"
#r "System.Runtime.Serialization"
open System.ServiceModel
[<ServiceContract>]
type IWCF =
[<OperationContract>]
abstract Ping: float -> unit
type WCF() =
interface IWCF with
member o.Ping a = printfn "Hello, %g" a
let svh = new ServiceHost (typeof<WCF>)
あなたはおそらく成功します。新しいソリューションを作りましょう。
参考:
- System.Runtime.Serialization
- System.ServiceModel
Program.fs
に次のコードを貼り付けます
open System.ServiceModel
[<ServiceContract>]
type IWCF =
[<OperationContract>]
abstract Ping: float -> unit
type WCF() =
interface IWCF with
member o.Ping a = printfn "Hello, %g" a
let svh = new ServiceHost (typeof<WCF>)
そして、それを実行します。次のエラーが表示されます。
All parameter names used in operations that make up a service contract must not be null. Parameter name: name
何が問題なのですか。
PS:私は、Visual Studio 2010の究極のSP1
EDITを使用します。念のため、C#の同等は正常に動作します
は、あなたは、.NETランタイムの正しいバージョンをターゲットにしていることを確認するために、チェックを倍増していますか?私が思い出したように、F#コンソールアプリケーションのデフォルトはVS 2010で、.NET 4のクライアントプロファイルです。このプロファイルは、完全な.NETプロファイルではなく、時には「ここでは動作するが、そこにはない」タイプの問題。 – pblasucci