C#

推荐列表 站点导航

当前位置:首页 > 脚本编程 > C# >

C#_C#实现动态加载dll的方法,本文实例讲述了C#实现动态加

来源:网络整理  作者:  发布时间:2020-12-22 12:59
C#实现动态加载dll的方法,本文实例讲述了C#实现动态加载dll的方法。分享给大家供大家参考。具体实现方法如下:复制...
using System.Collections.Generic;
                    result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, null, null, cultureInfo);
        }
            {

else
                            if (methisInfo.ReturnType == typeof(void))
            setup.LoaderOptimization = LoaderOptimization.SingleDomain;

            {

        public void Unload()
                            if (methisInfo.ReturnType == typeof(void))
                }
        ///
                catch (Exception e)
            setup.ApplicationName = "ApplicationLoader";
                                pgmType.InvokeMember(methodName, defaultBinding, null, null, args, cultureInfo);
        private Assembly assembly = null;

                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, null, null, cultureInfo);
                }

    public class AssemblyDynamicLoader<T>
                try
            T result = default(T);

/// <summary>
                else
                    pgmType = this.assembly.GetType(fullClassName, true, true);
                        else
            try

this.appDomain = AppDomain.CreateDomain("ApplicationLoaderDomain", null, setup);
                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, null, args, cultureInfo);

复制代码 代码如下:

                            {
            }
                                pgmType.InvokeMember(methodName, defaultBinding, null, null, null, cultureInfo);
            }
            this.assembly = null;
                            {
                {
using System.Reflection;
                return result;
                BindingFlags defaultBinding = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase | BindingFlags.InvokeMethod | BindingFlags.Static;
            catch (Exception ee)
}
                            else
        private AppDomain appDomain;

                        else
                    MethodInfo methisInfo = assembly.GetType(fullClassName, true, true).GetMethod(methodName);

                            }
                    else

namespace Alif.CommonAPI.DynamicLoadAssembly

}
        {
                {
                        {
            try
                            {
                Type pgmType = null;
                    }
                            {
            catch (CannotUnloadAppDomainException ex)
    }
                    }
                setup.ConfigurationFile = AppDomain.CurrentDomain.BaseDirectory + assemblyConfigFilePath;
    {

                            }
                    {

                        }
    }

assemblyName = AppDomain.CurrentDomain.BaseDirectory + assemblyPath + assemblyName;

                            }

                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, null, cultureInfo);

if (methisInfo.GetParameters().Length == 0)
            String name = Assembly.GetExecutingAssembly().GetName().FullName;

                AppDomain.Unload(this.appDomain);
                {
                }

public T InvokeMethod(string assemblyName, string assemblyPath, string assemblyConfigFilePath, string fullClassName, string methodName, params object[] args)
                            {
        {
                        {
                            }
using System;
        /// </summary>
                            object pgmClass = Activator.CreateInstance(pgmType);
            if (assemblyConfigFilePath != string.Empty)

namespace Alif.CommonAPI.DynamicLoadAssembly
                        {
                        if (methisInfo.GetParameters().Length == 0)

复制代码 代码如下:

        }

                                pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, null, cultureInfo);
                            }
                {
        }
using System.Reflection;

this.remoteLoader = (DynamicRemoteLoadAssembly<T>)this.appDomain.CreateInstanceAndUnwrap(name, typeof(DynamicRemoteLoadAssembly<T>).FullName);

                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, args, cultureInfo);
                            else
            }
}
        {
                    pgmType = Type.GetType(fullClassName, true, true);
                        }
            setup.ShadowCopyFiles = "true";
            {
                        }
            {
    {
    public class DynamicRemoteLoadAssembly<T> : MarshalByRefObject
            setup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory + @"bin\";
            //setup.PrivateBinPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "private");
            setup.CachePath = setup.ApplicationBase;
                    }

                    {

public T InvokeMethod(string assemblyPath, string fullClassName, string methodName, params object[] args)
                this.assembly = Assembly.LoadFile(assemblyPath);

private DynamicRemoteLoadAssembly<T> remoteLoader;

return this.remoteLoader.InvokeMethod(assemblyName, fullClassName, methodName, args);
                            }
using System.IO;

                            else
using System;
                            {
                if (this.assembly != null)

if (methisInfo == null)
                }
using System.Text;
                CultureInfo cultureInfo = new CultureInfo("es-ES", false);
            AppDomainSetup setup = new AppDomainSetup();
                            }
using System.Globalization;


            setup.ShadowCopyDirectories = setup.ApplicationBase;
                            }
                                pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, args, cultureInfo);
                            object pgmClass = Activator.CreateInstance(pgmType);
using System.Text;


using System.Collections.Generic;
{
                    {
            }
                            {
                this.appDomain = null;
                return result;
{
                            if (methisInfo.ReturnType == typeof(void))
                        new Exception("EMethod does not exist!");

if (methisInfo.IsStatic)
                            {
                        {
                            if (methisInfo.ReturnType == typeof(void))
            {
                        }

相关热词: 方法 C# 实例

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/c/7123.shtml

最新文章
热门文章
Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

C#_C#实现动态加载dll的方法,本文实例讲述了C#实现动态加

2020-12-22 编辑:

using System.Collections.Generic;
                    result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, null, null, cultureInfo);
        }
            {

else
                            if (methisInfo.ReturnType == typeof(void))
            setup.LoaderOptimization = LoaderOptimization.SingleDomain;

            {

        public void Unload()
                            if (methisInfo.ReturnType == typeof(void))
                }
        ///
                catch (Exception e)
            setup.ApplicationName = "ApplicationLoader";
                                pgmType.InvokeMember(methodName, defaultBinding, null, null, args, cultureInfo);
        private Assembly assembly = null;

                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, null, null, cultureInfo);
                }

    public class AssemblyDynamicLoader<T>
                try
            T result = default(T);

/// <summary>
                else
                    pgmType = this.assembly.GetType(fullClassName, true, true);
                        else
            try

this.appDomain = AppDomain.CreateDomain("ApplicationLoaderDomain", null, setup);
                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, null, args, cultureInfo);

复制代码 代码如下:

                            {
            }
                                pgmType.InvokeMember(methodName, defaultBinding, null, null, null, cultureInfo);
            }
            this.assembly = null;
                            {
                {
using System.Reflection;
                return result;
                BindingFlags defaultBinding = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase | BindingFlags.InvokeMethod | BindingFlags.Static;
            catch (Exception ee)
}
                            else
        private AppDomain appDomain;

                        else
                    MethodInfo methisInfo = assembly.GetType(fullClassName, true, true).GetMethod(methodName);

                            }
                    else

namespace Alif.CommonAPI.DynamicLoadAssembly

}
        {
                {
                        {
            try
                            {
                Type pgmType = null;
                    }
                            {
            catch (CannotUnloadAppDomainException ex)
    }
                    }
                setup.ConfigurationFile = AppDomain.CurrentDomain.BaseDirectory + assemblyConfigFilePath;
    {

                            }
                    {

                        }
    }

assemblyName = AppDomain.CurrentDomain.BaseDirectory + assemblyPath + assemblyName;

                            }

                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, null, cultureInfo);

if (methisInfo.GetParameters().Length == 0)
            String name = Assembly.GetExecutingAssembly().GetName().FullName;

                AppDomain.Unload(this.appDomain);
                {
                }

public T InvokeMethod(string assemblyName, string assemblyPath, string assemblyConfigFilePath, string fullClassName, string methodName, params object[] args)
                            {
        {
                        {
                            }
using System;
        /// </summary>
                            object pgmClass = Activator.CreateInstance(pgmType);
            if (assemblyConfigFilePath != string.Empty)

namespace Alif.CommonAPI.DynamicLoadAssembly
                        {
                        if (methisInfo.GetParameters().Length == 0)

复制代码 代码如下:

        }

                                pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, null, cultureInfo);
                            }
                {
        }
using System.Reflection;

this.remoteLoader = (DynamicRemoteLoadAssembly<T>)this.appDomain.CreateInstanceAndUnwrap(name, typeof(DynamicRemoteLoadAssembly<T>).FullName);

                                result = (T)pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, args, cultureInfo);
                            else
            }
}
        {
                    pgmType = Type.GetType(fullClassName, true, true);
                        }
            setup.ShadowCopyFiles = "true";
            {
                        }
            {
    {
    public class DynamicRemoteLoadAssembly<T> : MarshalByRefObject
            setup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory + @"bin\";
            //setup.PrivateBinPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "private");
            setup.CachePath = setup.ApplicationBase;
                    }

                    {

public T InvokeMethod(string assemblyPath, string fullClassName, string methodName, params object[] args)
                this.assembly = Assembly.LoadFile(assemblyPath);

private DynamicRemoteLoadAssembly<T> remoteLoader;

return this.remoteLoader.InvokeMethod(assemblyName, fullClassName, methodName, args);
                            }
using System.IO;

                            else
using System;
                            {
                if (this.assembly != null)

if (methisInfo == null)
                }
using System.Text;
                CultureInfo cultureInfo = new CultureInfo("es-ES", false);
            AppDomainSetup setup = new AppDomainSetup();
                            }
using System.Globalization;


            setup.ShadowCopyDirectories = setup.ApplicationBase;
                            }
                                pgmType.InvokeMember(methodName, defaultBinding, null, pgmClass, args, cultureInfo);
                            object pgmClass = Activator.CreateInstance(pgmType);
using System.Text;


using System.Collections.Generic;
{
                    {
            }
                            {
                this.appDomain = null;
                return result;
{
                            if (methisInfo.ReturnType == typeof(void))
                        new Exception("EMethod does not exist!");

if (methisInfo.IsStatic)
                            {
                        {
                            if (methisInfo.ReturnType == typeof(void))
            {
                        }

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/c/7123.shtml

相关文章

风云图片

推荐阅读

返回C#频道首页