Question

Je suis en train d'écrire un ServiceStack webservice en F#, et de la nécessité de limiter certaines fonctionnalités (enlever le SAVON de soutenir, par exemple).

En C#, je suis en utilisant le tuyau de fonctionnement à affecter plusieurs Énumérations (ServiceStack.ServiceHost.Caractéristique) à la EnableFeatures propriété de la sorte:

SetConfig(new EndpointHostConfig
{
    DebugMode = true, //Show StackTraces in responses in development
    EnableFeatures = Feature.Json | Feature.Xml | Feature.Html | Feature.Metadata | Feature.Jsv
});

Cependant en F#, vous ne pouvez pas utiliser le tuyau pour ce faire, et tout le reste j'essaie de essaie de faire application de fonction pour les énumérations.Comment puis-je faire au sujet de l'attribution de plusieurs énumérations dans ce cas?

Était-ce utile?

La solution

Utilisez un triple tuyau:

EnableFeatures = Feature.Json ||| Feature.Xml ||| Feature.Html ||| Feature.Metadata ||| Feature.Jsv

Autres conseils

Si vous avez un tas d'entre eux, vous pouvez économiser quelques touches à l' reduce:

List.reduce (|||) [Feature.Json; Feature.Xml; Feature.Html; Feature.Metadata]

Vous créeriez la valeur basée sur la construction des valeurs sous-jacentes:

EnabledFeatures = enum<Feature>(16); // or whatever the full flag value would be for Json + Xml + Html + Metadata, etc

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top