如何使用公共程序集

如何使用公共程序集,第1张

公共程序
1利用反射AssemblyLoadFrom() 动态加载程序集
static void Main()
{
// Load the assembly and create an Instance of MyAssembly
Assembly aa = AssemblyLoadFrom("MyAssembly\\MyAssemblydll");
Type a_t = aaGetType("MyAssembly");
object o = ActivatorCreateInstance(a_t);
// Invoke the GetDepAssembly method
object ac = oGetType()InvokeMember("GetDepAssembly", BindingFlagsInvokeMethod, null, o, new object[] {});
}
2使用 <codeBase> 元素。
只有在计算机配置文件或也重定向程序集版本的发行者策略文件中,才可以使用 <codeBase> 元素。在运行库确定要使用哪一程序集版本时,它应用确定版本的文件中的基本代码设置。如果未指出基本代码,那么运行库就以通常的方法探测程序集。有关详细信息,请参见运行库如何定位程序集。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asmv1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"//必需!程序集的名称
publicKeyToken="32ab4ba45e0a69a1" //sn -t FileNameKeyPublicsnk 得到该值
culture="en-us" />//可选,指定程序集的语言和国家/地区的字符串。一般是neutral
<codeBase version="2000"//程序集版本AssemblyInfocs中配置,或在属性中配置。
href=">呵呵,我写了个超简单的源码,你自己看吧!
版本
2
支持库
internet
程序集
窗口程序集1
子程序
__启动窗口_创建完毕
局部变量
文件,
文本型
局部变量
左边的内容,
文本型
局部变量
网址,
文本型
_启动窗口标题

“V010”
文件

到文本
(>在你的解决方案的项目上按右键,选属性,在应用程序界面选程序集信息。根据要求填入信息便可。vs2010有时在你填完后可能出错,你可直接打开项目下的Properties目录的AssemblyInfocs文件,对版本信息进行修改。

C#生成的应用程序右键详细信息上面的版本到底怎么改呢,一直想知道。

今天特地查了下,原来在这里,在Propertise下的Assemblyinfocs中

双击打开后就可看到相关信息

using SystemReflection;

using SystemResources;

using SystemRuntimeCompilerServices;

using SystemRuntimeInteropServices;

using SystemWindows;

// 有关程序集的一般信息由以下

// 控制。更改这些特性值可修改

// 与程序集关联的信息。

[assembly: AssemblyTitle("WpfApplication2")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("")]

[assembly: AssemblyProduct("WpfApplication2")]

[assembly: AssemblyCopyright("Copyright ©  2017")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

//将 ComVisible 设置为 false 将使此程序集中的类型

//对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,

//请将此类型的 ComVisible 特性设置为 true。

[assembly: ComVisible(false)]

//若要开始生成可本地化的应用程序,请

//<PropertyGroup> 中的 csproj 文件中

//例如,如果您在源文件中使用的是美国英语,

//使用的是美国英语,请将 <UICulture> 设置为 en-US。  然后取消

//对以下 NeutralResourceLanguage 特性的注释。  更新

//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。

//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocationSatellite)]

[assembly: ThemeInfo(

ResourceDictionaryLocationNone, //主题特定资源词典所处位置

//(当资源未在页面

//或应用程序资源字典中找到时使用)

ResourceDictionaryLocationSourceAssembly //常规资源词典所处位置

//(当资源未在页面

//、应用程序或任何主题专用资源字典中找到时使用)

)]

// 程序集的版本信息由下列四个值组成:

//

//      主版本

//      次版本

//      生成号

//      修订号

//

//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,

// 方法是按如下所示使用“”: :

// [assembly: AssemblyVersion("10")]

[assembly: AssemblyVersion("1000")]

[assembly: AssemblyFileVersion("1000")]

1程序集(assembly)也有翻译成装配件的。不能单纯的说是一个或者几个cs文件。
2它是应用程序中同一功能的逻辑单元,可以是单文件的程序集也可能是多文件的。(我记得某书上说用vs编译出来的都是单文件程序集)
3这个东西可以理解成是对一个(多个)dll或者exe的封装,利于版本控制而且还有元数据作为说明等好处。
4如果程序运行时需要使用某个方法,才会把它的程序集装载进内存否则可能一直都不会装载,就是使用哪部分装载那哪部分
!!最后,我理解的也不怎么样。只能零散的说这么多。
你问的那个控制访问修饰符。确实就五个,
c#相对对于c++加了Protected internal (同一个assembly和其子类可以访问)
internal (同一个assembly可以访问)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13354757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-20
下一篇 2023-07-20

发表评论

登录后才能评论

评论列表(0条)

保存