日期:2008-12-11  浏览次数:20436 次

第二部分(例子)
  
   下面是一个完整的例子来逐一说明上面所提到的概念,以加深理解。
   整个例子包含7个文件(在主目录下):
   主目录为 …/Assembly ----源程序目录
   …/Assembly/Bin ---- 编译结果输出的目录,也就是应用程序主目
  
   录。
  
  
  
   文件名
   类型
   说明
  
   App.cs
   Code源文件
   主程序,包含程序入口,
   属于namespace1
  
   ClassA.cs
   Code源文件
   类型A,包含一个静态方法,
   属于namespace1
  
   ClassB.cs
   Code源文件
   类型B,包含一个静态方法,
   属于namespace2
  
   AssemblyInfo.cs
   Code源文件
   包含程序集签名信息,
   版本信息等
  
   App.Key
   公钥/私钥对文件
   用来给程序集签名,
   生成强命名程序集
  
   App.PublicKey
   只包含共有密钥
   只储存共有密钥,
   用SN.exe来查看
  
   App.exe.config
   Xml格式配置文件
   App.exe的应用程序配置文件
  
   源代码
   App.cs
   namespace namespaceA {
   public class App {
   static void Main (string[] args) {
   System.Console.WriteLine(ClassA.ShowMe());
   System.Console.WriteLine(namespaceB.ClassB.ShowMe());
   }
   }
   }
   ClassA.cs
   namespace namespaceA {
   public class ClassA {
   public static string ShowMe()
   {
   return "This is ClassA";
   }
   }
   }
  
   ClassB.cs
   namespace namespaceB {
   public class ClassB {
   public static string ShowMe() {
   return "This is ClassB";
   }
   }
   }
   AssemblyInfo.cs
   ////////////////////////////////////////////////////////////////////////////////
   // Module: AssemblyInfo.cs
   ////////////////////////////////////////////////////////////////////////////////
   using System.Reflection;
   ////////////////////////////////////////////////////////////////////////////////
   // Set CompanyName, LegalCopyright, and LegalTrademarks
   [assembly: AssemblyCompany("App Company")]
   [assembly: AssemblyCopyright("Copyright (C) 2004 @ App Company")]
   [assembly: AssemblyTrademark("App is a test only program")]
   ////////////////////////////////////////////////////////////////////////////////
   // Set ProductName and ProductVersion
   [assembly: AssemblyProduct("App Product")]
   [assembly: AssemblyInformationalVersion("1.0.0.0")]
   ////////////////////////////////////////////////////////////////////////////////
   // Set FileVersion and AssemblyVersion
  
   [assembly: AssemblyFileVersion("1.0.0.0")]
   [assembly: AssemblyVersion("1.0.0.0")]
   [assembly: AssemblyTitle("App type assembly")]
   [assembly: AssemblyDescription("App Aassembly is a test only assembly")]
  
   ////////////////////////////////////////////////////////////////////////////////
   // Set Culture
   [assembly: AssemblyCulture("")]
   [assembly: AssemblyDelaySign(false)]
   [assembly: AssemblyKeyFile("App.key")]
   [assembly: AssemblyKeyName("")]
   App.key和App.PublicKey是二进制格式存储的,不能直接查看。后面例子中会用