Tag: 程序集

在运行时加载汇编并创build类实例

我有一个集会。 在这个汇编中,我有一个类和接口。 我需要在运行时加载这个程序集,并且想创build这个类的一个对象,并且也想使用这个接口。 Assembly MyDALL = Assembly.Load("DALL"); // DALL is name of my dll Type MyLoadClass = MyDALL.GetType("DALL.LoadClass"); // LoadClass is my class object obj = Activator.CreateInstance(MyLoadClass); 这是我的代码。 怎么能改进?

如何保持AppDomain中的ASP.NET程序集活着?

场景:我已经使用Web部署项目部署了一个n层企业ASP.NET应用程序。 所有层都生成ASP.NET应用程序使用的独立程序集。 问题:当我运行应用程序。 在部署之后第一次需要花费很多时间在内存中加载相关的程序集。 但一旦加载它的照明快速应用程序。 如果没有用户访问应用程序,IIS将从内存中卸载程序集,并且当用户试图在稍后的实例上访问该应用程序时,它将继续加载所有程序集,再次花费相同的时间加载它需要这样做的第一次。 我正在寻找一个解决scheme,使我能够将我的程序集永久地加载到内存中,覆盖程序集对存储器驻留的不稳定性。 或任何其他的解决scheme,让我的用户愉快地使用应用程序解决上述问题。

C#编译为32/64位,或任何CPU?

可能重复: Visual Studio“任何CPU”的目标 我注意到,在VS编译C#代码时,通常有编译32/64位系统的选项,还有一个用于编译任何cpu的选项。 这两种select有什么区别? select任何CPU只编译到一个中间字节的代码,而第一个选项编译到机器代码(这听起来不太可能)? 或者是其他东西?

在Visual Studio中从asm调用C标准库函数

我在Visual Studio中创build的asm项目(Win10 x64,Visual Studio 2015)中调用C函数时遇到问题。 项目由一个asm文件组成: .586 .model flat, stdcall option casemap:none includelib msvcrt.lib ExitProcess PROTO return:DWORD extern printf:near .data text BYTE "Text", 0 .code main PROC push offset text call printf add esp,4 invoke ExitProcess,0 main ENDP end main 当我build立项目,链接器输出错误: 在函数_main @ 0中引用LNK2019未parsing的外部符号_printf时出错 链接器输出参数: /OUT:"C:\Users\apple\Documents\SP_Lab7\Debug\SP_Lab7_Demo.exe“/ MANIFEST:NO / NXCOMPAT /PDB:"C:\Users\apple\Documents\SP_Lab7\Debug\SP_Lab7_Demo.pdb”/ DYNAMICBASE “kernel32.lib”“user32.lib”“gdi32.lib”“winspool.lib”“comdlg32.lib”“advapi32.lib”“shell32.lib”“ole32.lib”“oleaut32.lib”“uuid.lib” “odbc32.lib”“odbccp32.lib”/ MACHINE:X86 / […]

find两个大于或等于给定值的最小幂的algorithm

我需要find两个大于或等于给定值的最小幂。 到目前为止,我有这样的: int value = 3221; // 3221 is just an example, could be any number int result = 1; while (result < value) result <<= 1; 它工作正常,但感觉有点天真。 这个问题有更好的algorithm吗? 编辑。 有一些不错的汇编build议,所以我将这些标签添加到问题。

dynamicreplaceC#方法的内容?

我想要做的是改变一个C#方法在被调用的时候的执行方式,这样我可以写下如下的东西: [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n – 1; m += 1) if (m % n == 0) return false; return true; } 在运行时,我需要能够分析具有分布式属性(我已经可以做到)的方法,然后在函数正文执行之前和函数返回之前插入代码。 更重要的是,我需要能够在不调整Solve的地方修改代码,或者在函数启动的时候(编译时;在运行时这样做)。 目前我已经尝试了这一小段代码(假设t是Solve存储的types,m是Solve的MethodInfo) : private void WrapMethod(Type t, MethodInfo m) { // Generate ILasm for delegate. byte[] il = typeof(Dpm).GetMethod("ReplacedSolve").GetMethodBody().GetILAsByteArray(); // Pin […]

如何保持.NET中的不同程序集版本的user.config设置?

基本上问题是,每次程序集版本改变(即用户安装新版本的应用程序),他们的所有设置都被重置为默认值(或者更确切地说,新的user.config文件是在具有不同版本的文件夹中创build的号码作为名字) 升级版本时如何保持相同的设置,因为使用ini文件或registry似乎不鼓励? 当我们使用Clickonce时,它似乎能够处理这个问题,所以看起来应该可以完成,但我不知道如何。

如何解决“引用的程序集没有强名称”的错误?

我已经添加了一个弱命名的程序集到我的Visual Studio 2005项目(这是强烈命名)。 我现在得到的错误: “引用程序集”xxxxxxxx“没有强名” 我是否需要签署这个第三方程序集?

“开关”比“如果”更快?

switch语句实际上比if语句快吗? 我使用/Ox标志在Visual Studio 2010的x64 C ++编译器上运行以下代码: #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX_COUNT (1 << 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = 0; i < MAX_COUNT; i++) { switch (counter % 4 + 1) { case 1: counter += 4; break; case 2: counter […]

XOR注册与自己的目的是什么?

xor eax, eax将始终将eax设置为零,对吧? 那么,为什么MSVC ++有时会把它放在我的可执行代码中呢? mov eax, 0更高效吗? 012B1002 in al,dx 012B1003 push ecx int i = 5; 012B1004 mov dword ptr [i],5 return 0; 012B100B xor eax,eax 另外, in al, dx做什么意思?