首先这种情况出现在应用程序启动前的方法里面。

本想通过发射来实现一些功能。谁知道被这个坑了。

碰到这种问题。已经相当无语了。同时也不知道该如何解决。望有能之士帮忙解答

using System;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Compilation;
using System.Web.Hosting;
using Infrastructure; [assembly: PreApplicationStartMethod(typeof(PreApplicationInit), "InitializePlugins")]
namespace Infrastructure
{
public class PreApplicationInit
{
static PreApplicationInit()
{
var pluginsPath = HostingEnvironment.MapPath("~/plugins"); var pluginsTempPath = HostingEnvironment.MapPath("~/plugins/temp"); if (pluginsPath == null || pluginsTempPath == null)
throw new DirectoryNotFoundException("plugins"); PluginFolder = new DirectoryInfo(pluginsPath);
TempPluginFolder = new DirectoryInfo(pluginsTempPath);
} /// <summary>
/// The source plugin folder from which to copy from
/// </summary>
/// <remarks>
/// This folder can contain sub folders to organize plugin types
/// </remarks>
private static readonly DirectoryInfo PluginFolder; /// <summary>
/// The folder to copy the plugin DLLs to use for running the app
/// </summary>
private static readonly DirectoryInfo TempPluginFolder; /// <summary>
/// Initialize method that registers all plugins
/// </summary>
public static void InitializePlugins()
{
var assemblies = PluginFolder.GetFiles("*.dll", SearchOption.AllDirectories)
.Select(x => Assembly.LoadFrom(x.FullName)); foreach (var assembly in assemblies)
{
var type = assembly.GetTypes().FirstOrDefault(t => t.GetInterface(typeof(IModule).Name) != null);
if (type == null) continue;
//Add the plugin as a reference to the application
if (AppDomain.CurrentDomain.GetAssemblies().All(a => a.FullName != assembly.FullName))
{
BuildManager.AddReferencedAssembly(assembly);
} //Add the modules to the PluginManager to manage them later
var module = (IModule)Activator.CreateInstance(type);
PluginManager.Current.Modules.Add(module, assembly);
}
}
}
}

  上面是代码。

如果通过Type.IsAssignableFrom方法来查找接口的实现,根本查不到。

这是目录结构

这是Module的实现

using System;
using Infrastructure; namespace NewsPlugin
{
public class Module:IModule
{
public string Name {
get
{
return "NewsPlugin";
}
set
{
if (value == null) throw new ArgumentNullException("value");
this.Name = value;
}
}
}
}

.Net平台下实例类型无法转换成接口类型?的更多相关文章

  1. long类型字段转换成varchar2类型

    參考文档: How to Convert a Long to Varchar2 (文档 ID 228532.1) /*long类型字段转换成varchar2类型*/ --建表 create table ...

  2. mysql 查询 int类型日期转换成datetime类型

    数据库日期类型是int类型的,该查询结果是datetime类型的 SELECT from_unixtime( `时间列名` ) FROM 表名 如果原来类型是datetime类型,查询结果要是int类 ...

  3. js string类型时间转换成Date类型

    方法一: var t = "2015-03-16";var array =  t.split("-");var dt = new Date(array[0], ...

  4. MySQL如何把varchar类型字段转换成int类型进行倒叙排序

    SELECT * FROM sheet2 t1 WHERE t1.`金额`+'0' ORDER BY t1.`金额` DESC;

  5. Angular js 双向绑定时字符串的转换成 数字类型的问题

    问题: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <scrip ...

  6. JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值

    在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传 ...

  7. Swift - 将String类型的数字转换成数字类型

    Swift中,如果要把字符串转换成数字类型(比如整型,浮点型等).可以先转成NSString类型,让后再转. 1 2 3 4 //将文本框中的值转换成数字 var i = (tf1.text as N ...

  8. 工作随笔——Golang interface 转换成其他类型

    新的公司,新的氛围.一年了,打算写点什么.so,那就写google的golang语言吧. 最最最基础的语法结构见go语言菜鸟教程 接下来写点菜鸟教程没有的. go语言的设计者认为:go语言必须让程序员 ...

  9. python将字符串类型list转换成list

    python读取了一个list是字符串形式的'[11.23,23.34]',想转换成list类型: 方式一: import ast str_list = "[11.23,23.34]&quo ...

随机推荐

  1. php命名空间学习笔记。

    为什么要用命名空间? 在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题: 用户编写的代码 与  PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲 ...

  2. 【探路者】互评beta版本

    成员博客 1蔺依铭:http://www.cnblogs.com/linym762/ 2张恩聚:http://www.cnblogs.com/zej87/ 3米赫:http://www.cnblogs ...

  3. Android开发随笔2

    昨天:对anroid的系统架构了解比如:基于linux内核,整合库函数和java编译器并且为上层提供封装好的api和一些基本系统级应用 创建一个安卓的模拟器 了解了ddms的作用和内容 利用已有的工具 ...

  4. Requests库与HTTP协议

    了解HTTP协议 请求与响应模式的协议: 用户提出对URL(用来定位网络中的资源位置)地址数据的操作请求,服务器给予相应. 无状态的应用层协议:两次请求之间不会互相影响. HTTP协议支持的请求种类: ...

  5. 关于解决乱码问题的一点探索之二(涉及Unicode(utf-16)和GBK)

        在上篇日志中(链接),我们讨论了utf-8编码和GBK编码之间转化的乱码问题,这一篇我们讨论Unicode(utf-16编码方式)与GBK编码之间转换的乱码问题.     在Windows系统 ...

  6. 类的static成员变量和成员函数能被继承吗

    1.   父类的static变量和函数在派生类中依然可用,但是受访问性控制(比如,父类的private域中的就不可访问),而且对static变量来说,派生类和父类中的static变量是共用空间的,这点 ...

  7. 团队项目利用Msbuild自定义Task实现增量发布

    最近一直在做自动部署工具,主要利用到了Msbuild的自定义Task,通过Task我们可以自定义编译.部署过程减少人工直接干预.Msbuild的详细用法,可以去园子里搜一下,有很多的基础教程,这里就不 ...

  8. CentOS7 修改yum源为阿里云

    1,登陆root帐号 2,cd /etc/yum.repo.d 3,mv CentOS-Base.repo CentOS-Base.repo.bak4,wget http://mirrors.aliy ...

  9. webgl glsl

    GLSL是什么? GLSL是运行在GPU上的着色器语言 GLSL有自己的语法,跟js有些不同. GLSL是一个强类型的语言,所以在写着器语言时,必须要用强类型,强类型,强类型,强类型 GLSL是着色器 ...

  10. poj3107 Godfather 求树的重心

    Description Last years Chicago was full of gangster fights and strange murders. The chief of the pol ...