Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c语言中的类属性#_C#_Class Attributes - Fatal编程技术网

C# c语言中的类属性#

C# c语言中的类属性#,c#,class-attributes,C#,Class Attributes,我需要你的帮助 我已经阅读了C#中的类属性,我知道我们使用它们进行授权,身份验证,或者在反向过程中使用反射时获取有关类的一些信息 但是我真的想了解身份验证和授权的属性是如何工作的,以及当我们只是将属性放在类之上而不做任何其他事情时,它们是如何迫使用户遵守一些限制的,我无法理解使用类属性的身份验证或授权过程的流程 可能是我的问题不够清楚或有一些错误,但我确实需要一些人来解释使用C#中的类属性进行身份验证和授权的过程 请举个明确的例子 谢谢大家。有一些反射库,可以让您获得特定类的属性并对其进行迭代

我需要你的帮助

我已经阅读了C#中的类属性,我知道我们使用它们进行授权身份验证,或者在反向过程中使用反射时获取有关类的一些信息

但是我真的想了解身份验证和授权的属性是如何工作的,以及当我们只是将属性放在类之上而不做任何其他事情时,它们是如何迫使用户遵守一些限制的,我无法理解使用类属性的身份验证或授权过程的流程

可能是我的问题不够清楚或有一些错误,但我确实需要一些人来解释使用C#中的类属性进行身份验证和授权的过程

请举个明确的例子


谢谢大家。

有一些反射库,可以让您获得特定类的属性并对其进行迭代

一旦您了解了属性值和属性如何通过反射进行迭代,那么从概念上理解如何使用它们进行验证就不需要太多时间了


您还可以使用反射来迭代对象的方法和属性,并调用这些方法/属性。微软有一些很好的文档,所以如果你想查这个,你可以直接看一下


这是一个示例程序。利用属性

class Program
{
    static void Main(string[] args)
    {
        var something = new ClassWithAttributes();
        var attributes = typeof(ClassWithAttributes).GetCustomAttributesData();

        var attribute = (SomeAttribute) Attribute.GetCustomAttribute(typeof(ClassWithAttributes), typeof (SomeAttribute));

        Console.WriteLine(attribute.Name);
        Console.ReadKey(false);
    }
}

[Some("larry")]
class ClassWithAttributes
{

}

public class SomeAttribute : System.Attribute
{
    public string Name { get; set; }

    public SomeAttribute(string name)
    {
        this.Name = name;
    }
}
这是我用来帮助制作这个样本的文档


有一些反射库,可以让您获取特定类的属性并对其进行迭代

一旦您了解了属性值和属性如何通过反射进行迭代,那么从概念上理解如何使用它们进行验证就不需要太多时间了


您还可以使用反射来迭代对象的方法和属性,并调用这些方法/属性。微软有一些很好的文档,所以如果你想查这个,你可以直接看一下


这是一个示例程序。利用属性

class Program
{
    static void Main(string[] args)
    {
        var something = new ClassWithAttributes();
        var attributes = typeof(ClassWithAttributes).GetCustomAttributesData();

        var attribute = (SomeAttribute) Attribute.GetCustomAttribute(typeof(ClassWithAttributes), typeof (SomeAttribute));

        Console.WriteLine(attribute.Name);
        Console.ReadKey(false);
    }
}

[Some("larry")]
class ClassWithAttributes
{

}

public class SomeAttribute : System.Attribute
{
    public string Name { get; set; }

    public SomeAttribute(string name)
    {
        this.Name = name;
    }
}
这是我用来帮助制作这个样本的文档


属性通过反射将功能应用于类。该类可以获得它所修饰的属性,并根据需要使用它们和任何参数


进一步阅读:

属性通过反射将功能应用于类。该类可以获得它所修饰的属性,并根据需要使用它们和任何参数


进一步阅读:

您是在谈论System.Web.Mvc中的AuthorizeAttribute类吗?@BrianDriscoll Mvc,还是假设我想创建一个Costude属性来完成与Mvc类属性相同的事情,如何实现。有很多指南,google为
自定义授权属性mvc
返回了大量点击。那是你应该去的地方start@Mohammad如果您没有提供更多关于您试图授权访问某些资源的上下文的详细信息,我无法真正向您解释。。。这就像试图煮沸大海一样。@briandriscoll我只是想了解这些属性是如何工作的,假设我们想在名为Admin的类上面使用属性[Authorize(Roles=“Administrators”)],现在MVC是如何工作的,以防止非管理员用户使用这个类。如果你看到我应该读一些东西来理解这个过程,请指导我。我是MVC新手:(.你是在谈论System.Web.Mvc中的AuthorizeAttribute类?@BrianDriscoll Mvc,还是假设我想创建一个Costude属性来做与Mvc类属性相同的事情,以及如何做到这一点。有很多指南,google为
自定义授权属性Mvc
返回了很多点击率。这就是你要做的应该start@Mohammad如果您没有提供更多关于您试图授权访问某些资源的上下文的详细信息,我就无法向您真正解释它……这就像试图煮沸大海一样。@BriandrisColl我只是想了解这些属性是如何工作的,假设我们要使用属性[authorize(Roles=“Administrators”)]上面是一个名为Admin的类,现在是MVC如何阻止非管理员用户使用这个类的。如果你看到我应该阅读一些东西来理解这个过程,请指导我。我是MVC的新手:(。