2010-02-24 3 views
21

Мне нужно установить номер версии, который будет использоваться в атрибуте AssemblyVersion несколькими связанными проектами.Глобальные константы в F # - как

В C# я использую следующие

public class Constants { 
    public const string Version = "1.2.3.4"; 
} 

, то его можно использовать следующим образом:

[assembly:AssemblyVersion(Constants.Version)] 

Что было бы равнозначно конструкция в F #. Все мои попытки придумать привязку, которая может быть принята как аргумент атрибута, не сработали.

ответ

34

Используйте атрибут Literal:

[<Literal>] 
let version = "1.2.3.4" 

[<assembly:AssemblyVersion(version)>] 
8

Так как я вошел в эту ловушку, сам я думал, что я разделю для тех, кто следующий. «Литература» требует, чтобы письмо начиналось с заглавной буквы. Это поразит вас, когда вы попытаетесь использовать литерал в конструкции, соответствующей шаблону.

Ссылка: Literal attribute not working

+0

Это верно, только если вы хотите использовать литерал в качестве шаблона согласования контекста. – kvb

+0

Соответствие шаблону довольно важно для F #. Не работает при сопоставлении шаблонов, что делает его гораздо менее полезным. –

+3

Этот ответ был бы лучше в качестве комментария к принятому ответу. – CaringDev

Смежные вопросы