[assembly: SupportsWhatsNew] 这是什么用法???

时间:2021-11-03 01:55:50
using System;

using System.Collections;

using System.Text;

using Wrox.ProCSharp.WhatsNewAttributes;

[assembly: SupportsWhatsNew]

在这段代码中,添加了一行用SupportsWhatsNew特性标记程序集本身的代码。
 我不明白这个assembly: SupportsWhatsNew中的assembly是什么作用?在MSDN上没有找到这么用的啊?assembly: 程序集名?什么用法,我没有找到相关资源,请知道的朋友给个解释,谢谢

以上传自:http://blog.csdn.net/jiangxinyu/archive/2008/03/26/2218521.aspx

18 个解决方案

#1


那个是《C# 2005 & .NET 3.0高级编程(第5版)》里面的一个例子。
using System;

namespace Wrox.ProCSharp.WhatsNewAttributes

{

   [AttributeUsage(

      AttributeTargets.Class | AttributeTargets.Method,

      AllowMultiple=true, Inherited=false)]

   public class LastModifiedAttribute : Attribute

   {

      private DateTime dateModified;

      private string changes;

      private string issues;

      public LastModifiedAttribute(string dateModified, string changes)

      {

         this.dateModified = DateTime.Parse(dateModified);

         this.changes = changes;

      }

      public DateTime DateModified

      {

         get

         {

            return dateModified;

         }

      }

      public string Changes

      {

         get

         {

            return changes;

         }

      }

      public string Issues

      {

         get

         {

            return issues;

         }

         set

         {

            issues = value;

         }

      }

   }

   [AttributeUsage(AttributeTargets.Assembly)]

   public class SupportsWhatsNewAttribute : Attribute

   {

   }

}

#2


楼上没听明白我的问题,一般不是这样的
 9[assembly: AssemblyTitle("")]
10[assembly: AssemblyDescription("")]
11[assembly: AssemblyConfiguration("")]
12[assembly: AssemblyCompany("")]
13[assembly: AssemblyProduct("")]
14[assembly: AssemblyCopyright("")]
15[assembly: AssemblyTrademark("")]
16[assembly: AssemblyCulture("")]  

吗?可是这样的是这 [assembly: SupportsWhatsNew],它是什么作用?什么意思?在MSDN上没找到相关的,请知道的朋友告诉我一下 

#3


[assembly: ****] 是设置assembly的属性。创建工程后在Properties下面有个AssemblyInfo.cs文件,里面都是这类的属性

[assembly: AssemblyTitle("csdnwinform")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("wilcom")]
[assembly: AssemblyProduct("csdnwinform")]
[assembly: AssemblyCopyright("Copyright © wilcom 2009")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

对于
[assembly: SupportsWhatsNew] 

这个SupportsWhatsNew是个自定义的属性,其定义见ls的帖子

#4


引用 2 楼 noflyzone 的回复:
楼上没听明白我的问题,一般不是这样的 
9[assembly: AssemblyTitle("")] 
10[assembly: AssemblyDescription("")] 
11[assembly: AssemblyConfiguration("")] 
12[assembly: AssemblyCompany("")] 
13[assembly: AssemblyProduct("")] 
14[assembly: AssemblyCopyright("")] 
15[assembly: AssemblyTrademark("")] 
16[assembly: AssemblyCulture("")]  

吗?可是这样的是这[assembly: SupportsWhatsNew],它是什么作…


SupportsWhatsNew是自定义的属性
1楼帖子中有
 [AttributeUsage(AttributeTargets.Assembly)]

   public class SupportsWhatsNewAttribute : Attribute

   {

   }

#5


我也不知道

#6


Assembly.cs或者直接在类上都可以使用的

#7


如果是定制的特性不是应该是这样的吗?

   [AttributeUsage(AttributeTargets.Assembly)]

   public class SupportsWhatsNewAttribute : Attribute

   {

   }


[SupportsWhatsNew]怎么变成[assembly: SupportsWhatsNew]???为什么多了assembly:


#8


[assembly: SupportsWhatsNew] 
是设置assembly.cs中的SupportsWhatsNew的属性.
SupportsWhatsNew有可能是自定义的属性.

#9


引用 8 楼 sxmonsy 的回复:
[assembly: SupportsWhatsNew] 
是设置assembly.cs中的SupportsWhatsNew的属性. 
SupportsWhatsNew有可能是自定义的属性. 


你好象说的不对吧,[assembly: 代表程序集级别的意思吧,我也弄不太确定,还是请更高的手说说明白吧,关注

#10


引用 9 楼 bengbeng1759 的回复:
引用 8 楼 sxmonsy 的回复:
[assembly: SupportsWhatsNew] 
是设置assembly.cs中的SupportsWhatsNew的属性. 
SupportsWhatsNew有可能是自定义的属性. 
 

你好象说的不对吧,[assembly: 代表程序集级别的意思吧,我也弄不太确定,还是请更高的手说说明白吧,关注


我也觉得应该是什么级别的意思,可就是找不到任何文章支持一下。哎,哪位高人给“确定”一下啊

#11


SupportsWhatsNew就是自定义的属性 
这儿有点资料  希望对lz有帮助
http://mgc.ahau.edu.cn/article.asp?id=624

#12


我是楼主

谢谢,楼上的朋友了,但我要说明一下,我基本明白特性{也有叫属性}和反射了,但这里我问的不是这个问题,我问的是


//使用SupportsWhatsNew特性标记    //1。为什么要为它标记,标记起到什么作用。   
[assembly:SupportsWhatsNew]    //2.为什么要以assembly:开头修饰这个特性SupportsWhatsNew


这才是我要问的问题,说别的就跑题了,请您就别乱发文章了,您每一次,我就得很用心的看一遍,结果根本不是我要问的,汗

#13




请注意

我要问的是第12楼中的问题,别再跑题了,我很晕

#14


UP!

#15


应该就是我说的,分给我吧,具体出自哪我也说不出

#16


//使用SupportsWhatsNew特性标记   //1。为什么要为它标记,标记起到什么作用。
已经说了是一个自定义的属性了。到底有什么用处只有定义属性的人才知道。
反正,使用反射的时候可以读取这个属性。
Assembly a = Assembly.LoadFrom(assemblyName);

// Now find the attributes on the assembly
object[] attributes = a.GetCustomAttributes(true) ;

// If there were any attributes defined...
if(attributes.Length > 0)
   {
      Console.WriteLine("Assembly attributes for '{0}'...", assemblyName);
      // Dump them out...
      foreach(object o in attributes)
           Console.WriteLine("  {0}", o.ToString());
   }


建议看看书上的相关章节:C#高级编程(第三版) 10.1.1小节。
http://books.google.cn/books?id=JF8OjPXHfm4C&pg=RA1-PT1&dq=C%23%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B&lr=


  
[assembly:SupportsWhatsNew]   //2.为什么要以assembly:开头修饰这个特性SupportsWhatsNew 
assembly:开头说明这个属性是修饰assembly,而不是其它的像类或者函数等等。
参考:
http://msdn.microsoft.com/en-us/library/4w8c1y2s.aspx

#17


用SupportsWhatsNew特性标记程序集本身的代码

#18


[assmbly:][class:]……是一样的,只是class的是可以缺省的,而assmbly是必须的,不信你试试在用[class:]来标记类的特性,是可以通过的,并且编译器会提示你,class是缺省的

#1


那个是《C# 2005 & .NET 3.0高级编程(第5版)》里面的一个例子。
using System;

namespace Wrox.ProCSharp.WhatsNewAttributes

{

   [AttributeUsage(

      AttributeTargets.Class | AttributeTargets.Method,

      AllowMultiple=true, Inherited=false)]

   public class LastModifiedAttribute : Attribute

   {

      private DateTime dateModified;

      private string changes;

      private string issues;

      public LastModifiedAttribute(string dateModified, string changes)

      {

         this.dateModified = DateTime.Parse(dateModified);

         this.changes = changes;

      }

      public DateTime DateModified

      {

         get

         {

            return dateModified;

         }

      }

      public string Changes

      {

         get

         {

            return changes;

         }

      }

      public string Issues

      {

         get

         {

            return issues;

         }

         set

         {

            issues = value;

         }

      }

   }

   [AttributeUsage(AttributeTargets.Assembly)]

   public class SupportsWhatsNewAttribute : Attribute

   {

   }

}

#2


楼上没听明白我的问题,一般不是这样的
 9[assembly: AssemblyTitle("")]
10[assembly: AssemblyDescription("")]
11[assembly: AssemblyConfiguration("")]
12[assembly: AssemblyCompany("")]
13[assembly: AssemblyProduct("")]
14[assembly: AssemblyCopyright("")]
15[assembly: AssemblyTrademark("")]
16[assembly: AssemblyCulture("")]  

吗?可是这样的是这 [assembly: SupportsWhatsNew],它是什么作用?什么意思?在MSDN上没找到相关的,请知道的朋友告诉我一下 

#3


[assembly: ****] 是设置assembly的属性。创建工程后在Properties下面有个AssemblyInfo.cs文件,里面都是这类的属性

[assembly: AssemblyTitle("csdnwinform")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("wilcom")]
[assembly: AssemblyProduct("csdnwinform")]
[assembly: AssemblyCopyright("Copyright © wilcom 2009")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

对于
[assembly: SupportsWhatsNew] 

这个SupportsWhatsNew是个自定义的属性,其定义见ls的帖子

#4


引用 2 楼 noflyzone 的回复:
楼上没听明白我的问题,一般不是这样的 
9[assembly: AssemblyTitle("")] 
10[assembly: AssemblyDescription("")] 
11[assembly: AssemblyConfiguration("")] 
12[assembly: AssemblyCompany("")] 
13[assembly: AssemblyProduct("")] 
14[assembly: AssemblyCopyright("")] 
15[assembly: AssemblyTrademark("")] 
16[assembly: AssemblyCulture("")]  

吗?可是这样的是这[assembly: SupportsWhatsNew],它是什么作…


SupportsWhatsNew是自定义的属性
1楼帖子中有
 [AttributeUsage(AttributeTargets.Assembly)]

   public class SupportsWhatsNewAttribute : Attribute

   {

   }

#5


我也不知道

#6


Assembly.cs或者直接在类上都可以使用的

#7


如果是定制的特性不是应该是这样的吗?

   [AttributeUsage(AttributeTargets.Assembly)]

   public class SupportsWhatsNewAttribute : Attribute

   {

   }


[SupportsWhatsNew]怎么变成[assembly: SupportsWhatsNew]???为什么多了assembly:


#8


[assembly: SupportsWhatsNew] 
是设置assembly.cs中的SupportsWhatsNew的属性.
SupportsWhatsNew有可能是自定义的属性.

#9


引用 8 楼 sxmonsy 的回复:
[assembly: SupportsWhatsNew] 
是设置assembly.cs中的SupportsWhatsNew的属性. 
SupportsWhatsNew有可能是自定义的属性. 


你好象说的不对吧,[assembly: 代表程序集级别的意思吧,我也弄不太确定,还是请更高的手说说明白吧,关注

#10


引用 9 楼 bengbeng1759 的回复:
引用 8 楼 sxmonsy 的回复:
[assembly: SupportsWhatsNew] 
是设置assembly.cs中的SupportsWhatsNew的属性. 
SupportsWhatsNew有可能是自定义的属性. 
 

你好象说的不对吧,[assembly: 代表程序集级别的意思吧,我也弄不太确定,还是请更高的手说说明白吧,关注


我也觉得应该是什么级别的意思,可就是找不到任何文章支持一下。哎,哪位高人给“确定”一下啊

#11


SupportsWhatsNew就是自定义的属性 
这儿有点资料  希望对lz有帮助
http://mgc.ahau.edu.cn/article.asp?id=624

#12


我是楼主

谢谢,楼上的朋友了,但我要说明一下,我基本明白特性{也有叫属性}和反射了,但这里我问的不是这个问题,我问的是


//使用SupportsWhatsNew特性标记    //1。为什么要为它标记,标记起到什么作用。   
[assembly:SupportsWhatsNew]    //2.为什么要以assembly:开头修饰这个特性SupportsWhatsNew


这才是我要问的问题,说别的就跑题了,请您就别乱发文章了,您每一次,我就得很用心的看一遍,结果根本不是我要问的,汗

#13




请注意

我要问的是第12楼中的问题,别再跑题了,我很晕

#14


UP!

#15


应该就是我说的,分给我吧,具体出自哪我也说不出

#16


//使用SupportsWhatsNew特性标记   //1。为什么要为它标记,标记起到什么作用。
已经说了是一个自定义的属性了。到底有什么用处只有定义属性的人才知道。
反正,使用反射的时候可以读取这个属性。
Assembly a = Assembly.LoadFrom(assemblyName);

// Now find the attributes on the assembly
object[] attributes = a.GetCustomAttributes(true) ;

// If there were any attributes defined...
if(attributes.Length > 0)
   {
      Console.WriteLine("Assembly attributes for '{0}'...", assemblyName);
      // Dump them out...
      foreach(object o in attributes)
           Console.WriteLine("  {0}", o.ToString());
   }


建议看看书上的相关章节:C#高级编程(第三版) 10.1.1小节。
http://books.google.cn/books?id=JF8OjPXHfm4C&pg=RA1-PT1&dq=C%23%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B&lr=


  
[assembly:SupportsWhatsNew]   //2.为什么要以assembly:开头修饰这个特性SupportsWhatsNew 
assembly:开头说明这个属性是修饰assembly,而不是其它的像类或者函数等等。
参考:
http://msdn.microsoft.com/en-us/library/4w8c1y2s.aspx

#17


用SupportsWhatsNew特性标记程序集本身的代码

#18


[assmbly:][class:]……是一样的,只是class的是可以缺省的,而assmbly是必须的,不信你试试在用[class:]来标记类的特性,是可以通过的,并且编译器会提示你,class是缺省的