小编sfi*_*_29的帖子

多个枚举说明

我已经定义了以下内容enum:

public enum DeviceType
{
    [Description("Set Top Box")]
    Stb = 1,
    Panel = 2,
    Monitor = 3,
    [Description("Wireless Keyboard")]
    WirelessKeyboard = 4
}
Run Code Online (Sandbox Code Playgroud)

我正在利用该Description属性允许我提取更多用户可读的枚举版本以在UI中显示.我使用以下代码获得描述:

var fieldInfo = DeviceType.Stb.GetType().GetField(DeviceType.Stb.ToString());

var attributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);

var description = (attributes.Length > 0 ? attributes[0].Description : DeviceType.Stb.ToString());
Run Code Online (Sandbox Code Playgroud)

上面的代码将给我:description = "Set Top Box".如果没有Description设置属性,它将为我提供枚举的字符串值.

我现在想为每个枚举添加第二个/自定义属性(为了示例,称为"值").例如:

public enum DeviceType
{
    [Description("Set Top Box")]
    [Value("19.95")]
    Stb = 1,
    [Value("99")]
    Panel = 2,
    [Value("199.99")]
    Monitor = 3,
    [Description("Wireless Keyboard")]
    [Value("20")]
    WirelessKeyboard …
Run Code Online (Sandbox Code Playgroud)

c# enums

22
推荐指数
2
解决办法
8537
查看次数

与 Web API 共享的 MVC 身份验证

我目前有一个 MVC 应用程序,使用默认的“个人用户帐户”选项进行身份验证。这很好用,我能够根据用户角色创建用户、登录并限制对控制器的访问。

我有一个单独的 Web API 应用程序,目前不使用任何身份验证。

这两个应用程序都作为单独的站点托管在同一 IIS 服务器上。我想将来自 MVC 应用程序的身份验证合并到 Web API 应用程序中,因此在用户登录到 MVC 应用程序后,他们还可以根据用户角色访问 Web API 应用程序中的相应控制器。

从我一直在读,我需要设置<authentication mode='Forms'>web.config这两个应用程序,因为他们是在同一台服务器上,验证自动在两者之间共享。我尝试[Authorize]在 Web API 应用程序的控制器中添加一个方法,通过 MVC 应用程序登录并尝试访问该方法,但从未输入该方法。

这就是我一直在看的:http : //www.bipinjoshi.net/articles/436bc727-6de2-4d11-9762-9ee1a1e3cbea.aspx

我在这里缺少什么?我希望有人能指出我正确的方向。

c# authentication asp.net-mvc authorize asp.net-web-api2

5
推荐指数
1
解决办法
1203
查看次数

表现:LEFT JOIN vs SUBQUERY

我正在使用PostgreSQL 9.3并具有以下表格(简化为仅显示相关字段):

SITES:
id
name
...

DEVICES:
id
site_id
mac_address UNIQUE
...
Run Code Online (Sandbox Code Playgroud)

给定mac_address一个特定的设备,我想得到相关的细节site.我有以下两个问题:

使用LEFT JOIN:

SELECT s.* FROM sites s
LEFT JOIN devices d ON s.id = d.site_id
WHERE d.mac_address = '00:00:00:00:00:00';
Run Code Online (Sandbox Code Playgroud)

使用SUBQUERY:

SELECT s.* FROM sites s
WHERE s.id IN (SELECT d.site_id FROM devices d WHERE d.mac_address = '00:00:00:00:00:00');
Run Code Online (Sandbox Code Playgroud)

在无限增长的数据库中,哪两个查询的性能最佳?我一直倾向于LEFT JOIN选择,但有兴趣知道两种速率在大型数据集上的表现如何.

postgresql optimization performance subquery left-join

4
推荐指数
1
解决办法
5623
查看次数

LINQ:按id从对象数组中选择单个值

采用以下示例类:

public class Questions
{
    public Int32 QuestionId { get; set; }
    public String Question { get; set; }
    public String Answer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以下数组:

var questionArray = new Questions[]
{
    new Questions {QuestionId = 1, Question = "How old are you?", Answer = "32"},
    new Questions {QuestionId = 2, Question = "What is your name?", Answer = "John"},
    new Questions {QuestionId = 3, Question = "How tall are you?", Answer = "6'"}
};
Run Code Online (Sandbox Code Playgroud)

使用LINQ,我想得到Answer指定的 …

c# linq arrays class object

-1
推荐指数
1
解决办法
1万
查看次数