仅在C#中编译时生成字符串?

时间:2018-02-21 11:20:32

标签: c# string datetime compilation visual-studio-2017

我想在编译时将System.DateTime.Now.ToString()调用并将其存储在一个不会被DateTime.Now更新的const String中。

有一种简单的方法吗?网上有很多关于汇编的主题,但我不是要设置一个汇编版本,所以这似乎不是正确的方法。

1 个答案:

答案 0 :(得分:0)

关于我的评论,当然还有另一种方法。通过使用T4。只需将T4模板添加到项目中......并将其更改为使用UTC

<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ output extension=".cs" #>
// <auto-generated>
//     This code was generated by a tool.
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
namespace YourStuff
{
    internal static class CompileTime
    {
        internal static string Stamp
        {
            get
            {
<#
        var stamp = System.DateTime.Now.ToString("yyyy.MM.dd HH:mm");
#>
                return "<#=stamp#>";
            }
        }
    }
}