tenta di eseguire questo in F # interattivo:F # interattivo vs. # soluzione F e 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>)
Si avrà probabilmente successo. Prova a creare una nuova soluzione.
Riferimento:
- System.Runtime.Serialization
- System.ServiceModel
Incollare il seguente codice in 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>)
ed eseguirlo. Viene visualizzato il seguente errore:
All parameter names used in operations that make up a service contract must not be null. Parameter name: name
Cosa c'è che non va?
PS: io uso Visual Studio 2010 Ultimate SP1
EDIT: solo per assicurarsi che, il C# equivalenti funziona bene
Avete raddoppiato-controllato per assicurarsi che si sta targeting giusta versione di .NET runtime? Come ricordo, l'impostazione predefinita per le applicazioni della console F #, in VS 2010, è il profilo client .NET 4, che * non * è il profilo .NET completo, che a volte causa questo tipo di "funziona qui ma non lì" tipi di problemi. – pblasucci