是否可以从类中获取applicationName
本文关键字:获取 applicationName 是否 | 更新日期: 2023-09-27 18:24:42
我正在asp.net mvc 3中开发一个自定义MembershipUser,并试图动态获取当前应用程序的applicationName。
这是正确的还是我咕咕咕咕?
var application = new ApplicationId();
var applicationName = application.Name;
我知道这是一个旧线程。。。但我想提供一些与你的问题实际相关的信息。它存储在成员资格提供程序中。如果您正在实现自己的提供程序,您将负责从web.config文件中获取它。但无论如何,该值存储在:中
System.Web.Security.Membership.ApplicationName
最合适的方法可能是程序集名称,您可以从Assembly
实例中获取该名称,也可能只是将应用程序名称作为appSetting
:推出
<configuration>
<appSettings>
<add key="ApplicationName" value="MyApp" />
</appSettings>
</configuration>
string applicationName = ConfigurationManager.AppSettings["ApplicationName"];
来自
http://www.neowin.net/forum/topic/480752-c-how-to-get-the-applications-name/
您有以下可能性:
"EXE"的产品名称(不是!必需的"EXE"文件的名称)
Application.ProductName;
"EXE"文件的名称:
Path.GetFileName(Application.ExecutablePath); //
如果你在一个非基于表单的类中。这将获得正在执行的程序集名称。
System.Reflection.Assembly.GetExecutingAssembly();
我希望这能帮助你
您可以读取Properties ''AssemblyInfo.cs文件中定义的AssemblyTitleAttribute
实例的值。与在web/app.config文件中定义程序集名称相比,它的冗余性较小。
您可以在下面的示例中看到如何获取属性值:
http://msdn.microsoft.com/en-us/library/f2z5sd1c.aspx
如果您不反对引用或引用System.Windows.Forms命名空间,那么您可以获得产品名称和其他有用信息,例如:
System.Windows.Forms.Application.ProductName;
令人惊讶的是,您无法通过此类获得标题、描述或其他典型信息——您实际上需要反映到程序集中。
using System;
using System.Reflection;
namespace YourNameSpace
{
public class AssemblyInfoHelper
{
private Assembly _Assembly;
/// <summary>
/// Whenever we're interested in assembly information, it's 99% of the time the entry assembly
/// hence used in the default constructor
/// </summary>
public AssemblyInfoHelper()
{
_Assembly = Assembly.GetEntryAssembly();
}
/// <summary>
/// for cases where we don't want the entry assembly we can supply the desired assembly to interrogate
/// </summary>
/// <param name="type"></param>
public AssemblyInfoHelper(Type type)
{
_Assembly = Assembly.GetAssembly(type);
}
public AssemblyInfoHelper(string path)
{
_Assembly = Assembly.ReflectionOnlyLoadFrom(path);
}
private T CustomAttributes<T>()
where T : Attribute
{
object[] customAttributes = _Assembly.GetCustomAttributes(typeof(T), false);
if ((customAttributes != null) && (customAttributes.Length > 0))
{
return ((T)customAttributes[0]);
}
throw new InvalidOperationException();
}
public string Title
{
get
{
return CustomAttributes<AssemblyTitleAttribute>().Title;
}
}
public string Description
{
get
{
return CustomAttributes<AssemblyDescriptionAttribute>().Description;
}
}
public string Company
{
get
{
return CustomAttributes<AssemblyCompanyAttribute>().Company;
}
}
public string Product
{
get
{
return CustomAttributes<AssemblyProductAttribute>().Product;
}
}
public string Copyright
{
get
{
return CustomAttributes<AssemblyCopyrightAttribute>().Copyright;
}
}
public string Trademark
{
get
{
return CustomAttributes<AssemblyTrademarkAttribute>().Trademark;
}
}
public string AssemblyVersion
{
get
{
return _Assembly.GetName().Version.ToString();
}
}
public string FileVersion
{
get
{
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(_Assembly.Location);
return fvi.FileVersion;
}
}
public string Guid
{
get
{
return CustomAttributes<System.Runtime.InteropServices.GuidAttribute>().Value;
}
}
}
}