我有一个名为SemverPartOption的枚举,它具有以下值:
public enum SemverPartOption
{
Full,
Version,
Major,
Minor,
Patch,
Micro,
Pre,
Meta
}
然后我有一个方法,它使用这个枚举作为参数:
public static string SemverPart(SemverPartOption? Option = SemverPartOption.Full)
枚举和方法都存在于AppName.Helpers
命名空间和AppInfo
类中。我试图能够调用该方法,只是传递枚举值。例如:
我必须做的事情:
Helpers.AppInfo.SemverPart(Helpers.AppInfo.SemverPartOption.Major);
我会好的:
Helpers.AppInfo.SemverPart(Major);
最理想:
SemverPart(Major);
有没有办法在不必经常使用using
声明的情况下执行此操作?
要明确我不想使用using
语句,因为我想在属于不同控制器类的几个Razor视图中调用此方法。
答案 0 :(得分:1)
不,您必须添加using
声明。
这不应该是一个问题;当您键入Major
而不必手动添加它时,您的IDE将为您提供导入它的选项。
如果您有另一个名称相同的枚举/类(Major
),那么它会起作用,但您可以通过添加更多信息(例如SemverPartOption.Major
或者您需要去的更多信息)来解决这个问题up),或使用an alias。
要将此枚举导入每个剃刀视图,请转到/Views/Web.config文件并添加(或调整)以下XML:
<system.web.webPages.razor>
<host
factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="AppName.Helpers.AppInfo" />
</namespaces>
</pages>
</system.web.webPages.razor>
答案 1 :(得分:1)
鉴于附加信息(关于剃刀页面中使用的信息),您可以添加&#34;使用&#34;使用~/Views/web.config
文件进行剃须。节点如下:
<configuration>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Web" />
<add namespace="AppName.Helpers.AppInfo" /> <!-- new addition -->
</namespaces>
</pages>
</system.web.webPages.razor>
</configuration>
这是将using AppName.Helpers.AppInfo
添加到代码文件的传真,但专门适用于@Razor页面。