class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Res.A);
        }
    }
    
    public class Test
    {
       [Load("ConsoleApplication1.Res.A")]
        public string A { get; set; }
       [Load("ConsoleApplication1.Res.B")]
        public string B { get; set; }    }    public class Load:Attribute
    {
        public Load(string name)
        { 
            
        }
    }
还有一个资源文件Res,里面有名称为A,对应的值为aaa,B对应的值为bbb我在static void Main(string[] args)
方法里面想打印出这两个值 aaa和bbb,请问应该在Load的构造 方法里面怎么做。。

解决方案 »

  1.   

    你的资源应该是在Test类里面获取的吧,你至少应该创建Test的实例,然后通过实例去访问
      

  2.   

    一般不会用特性对属性赋值,如果非要这么做好像也可以稍微改造下
        public class Test
        {
           public Test()
           {
              //在构造函数中读取特性,反射对属性赋值
           }
           
           [Load("ConsoleApplication1.Res.A")]
            public string A { get; set; }
           [Load("ConsoleApplication1.Res.B")]
            public string B { get; set; }    }    public class Load:Attribute
        {
            public Load(string name)
            { 
                //反射对Value赋值
            }
            public object Value
            {
              get;
            }
        }
    怎么用自定义特性网上搜搜,代码很多
      

  3.   


    我想能过里面的属性前面的A前面的Load("ConsoleApplication1.Res.A")
    参数是ConsoleApplication1是命名空间,Res是资源文件的类名,A是名称
    ConsoleApplication1.Res.A这个参数。。在Load里面得到资源文件的值 。