C 中運用AppDomain動態引導程式集詳解

2021-07-14 22:01:16 字數 2961 閱讀 9478

標籤: c#

assembly

string

null

output

.net

2011-09-16 11:17

2512人閱讀收藏

舉報

vs2008(58)

作者同類文章x

.net(120)

作者同類文章x

vs2005(55)

作者同類文章x

除非你關掉作業管理伺服器,然後再操作,顯然這樣做是很不合理的。

code highlighting produced by actipro codehighlighter (freeware)

-->using

system;

using

system.collections.generic;

using

system.globalization;

using

system.io;

using

system.reflection;

using

system.text;

using

ark.log;

//////

the local loader.

///public

class

assemblydynamicloader

//////

invokes the method.

//////

the full name.

///name of the class.

///the args input.

///name of the program.

///the output of excuting.

public

string invokemethod(string fullname, string classname,

string argsinput, string programname)

//////

unloads this instance.

///public

void

unload()

catch}}

code highlighting produced by actipro codehighlighter (freeware)

-->using

system;

using

system.collections.generic;

using

system.globalization;

using

system.io;

using

system.reflection;

using

system.text;

//////

the remote loader.

///public

class

remoteloader : marshalbyrefobject

}//////

invokes the method.

//////

the full name.

///name of the class.

///the args input.

///name of the program.

public

void

invokemethod(string fullname, string classname,

string argsinput, string programname)

else

object args

=runjob.getargs(argsinput);

bindingflags defaultbinding

=bindingflags.declaredonly

|bindingflags.public

|bindingflags.nonpublic

|bindingflags.instance

|bindingflags.ignorecase

|bindingflags.invokemethod

|bindingflags.static;

cultureinfo cultureinfo

=new

cultureinfo(

"es-es",

false

);

try

if(methisinfo.isstatic)

else

}else

else}}

else

else

}else

else}}

}catch

}catch

(exception e)}}

其中的invokemethod方法只要提供assembly的全名、類的全名、待執行方法的輸入引數和其全名就可以執行該方法,該方法可以是帶引數或不帶引數,靜態的或者不是靜態的。

最後這樣使用這兩個類:

code highlighting produced by actipro codehighlighter (freeware)

-->assemblydynamicloader loader 

=new

assemblydynamicloader();

string output 

=loader.invokemethod(

"filename", 

"ymtcla", 

"yjoinp", 

"ymtpgm");

loader.unload();

0

踩 0

C 中運用AppDomain動態引導程式集詳解

除非你關掉作業管理伺服器,然後再操作,顯然這樣做是很不合理的。code highlighting produced by actipro codehighlighter freeware using system using system.collections.generic using syst...

AppDomain與動態引導程式集

是乙個應用程式執行的獨立環境,為執行託管 提供隔離 解除安裝和安全邊界.net 應用程式是由許多程式集組成的,然而不像win32 程式,net 程式是在應用程式域中執行.應用程式域不同於win32 的程序.實際上,之間是完全隔離的.中應用程式是不能共享資訊的 全域性變數,靜態字段 除非用remoti...

使用AppDomain進行動態載入和解除安裝dll

載入dll最簡單的寫法 assembly.load 但這樣寫這個dll就被程式占用不可刪除,即不可以解除安裝。第一步,建立assemblyproxy類 public class assemblyproxy marshalbyrefobject 開放委託,可使用assembly操作 public t ...