.Net平台下实例类型无法转换成接口类型?
首先这种情况出现在应用程序启动前的方法里面。
本想通过发射来实现一些功能。谁知道被这个坑了。
碰到这种问题。已经相当无语了。同时也不知道该如何解决。望有能之士帮忙解答
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平台下实例类型无法转换成接口类型?的更多相关文章
- long类型字段转换成varchar2类型
參考文档: How to Convert a Long to Varchar2 (文档 ID 228532.1) /*long类型字段转换成varchar2类型*/ --建表 create table ...
- mysql 查询 int类型日期转换成datetime类型
数据库日期类型是int类型的,该查询结果是datetime类型的 SELECT from_unixtime( `时间列名` ) FROM 表名 如果原来类型是datetime类型,查询结果要是int类 ...
- js string类型时间转换成Date类型
方法一: var t = "2015-03-16";var array = t.split("-");var dt = new Date(array[0], ...
- MySQL如何把varchar类型字段转换成int类型进行倒叙排序
SELECT * FROM sheet2 t1 WHERE t1.`金额`+'0' ORDER BY t1.`金额` DESC;
- Angular js 双向绑定时字符串的转换成 数字类型的问题
问题: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <scrip ...
- JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值
在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传 ...
- Swift - 将String类型的数字转换成数字类型
Swift中,如果要把字符串转换成数字类型(比如整型,浮点型等).可以先转成NSString类型,让后再转. 1 2 3 4 //将文本框中的值转换成数字 var i = (tf1.text as N ...
- 工作随笔——Golang interface 转换成其他类型
新的公司,新的氛围.一年了,打算写点什么.so,那就写google的golang语言吧. 最最最基础的语法结构见go语言菜鸟教程 接下来写点菜鸟教程没有的. go语言的设计者认为:go语言必须让程序员 ...
- python将字符串类型list转换成list
python读取了一个list是字符串形式的'[11.23,23.34]',想转换成list类型: 方式一: import ast str_list = "[11.23,23.34]&quo ...
随机推荐
- SpringMVC相关的面试题
1.什么是springMVC springmvc是spirng框架的一个模块,是一个基于MVC框架的web框架 2.springmvc的流程 a.客户端发送请求 b.前端控制器DispatcherSe ...
- 福大软工1816:Beta(6/7)
Beta 冲刺 (6/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 组织会议 开发wxpy部分功能 展示G ...
- lintcode-425-电话号码的字母组合
425-电话号码的字母组合 Given a digit string excluded 01, return all possible letter combinations that the num ...
- Oracle忘记密码如何重置
昨天安装Oracle11g R2的时候给scott用户设置密码,当时没有显示而且还只以输入一次,可能密码输入错误,结果今天用scott用户登录果然密码不对,还好sys和system用户都正常,就进去给 ...
- PHP面向对象之接口
接口(interface)技术 什么是接口? 先看抽象类: abstract class 类名 { 属性1: 属性2: ..... 非抽象方法1: 非抽象方法2: ...... 抽象方法1: 抽 ...
- USB硬件接口相关
1.USB 设备端的D+为何要拉一个1.5K电阻到3.3v上?(USB是5v供电,但通信的电平是3.3v,所以上拉电平为3.3v:若要上拉到5v,则上拉电阻为10k) usb有主从设备之分,主设备有: ...
- hive表信息查询:查看表结构、表操作等--转
原文地址:http://www.aboutyun.com/forum.PHP?mod=viewthread&tid=8590&highlight=Hive 问题导读:1.如何查看hiv ...
- python 序列化 pickle shelve json configparser
1. 什么是序列化 我们把变量从内存中变成可存储或传输的过程称之为序列化. 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对象重新读到内存里称 ...
- Zebras CodeForces - 950C(思维)
借鉴自: https://www.cnblogs.com/SuuT/p/8619227.html https://blog.csdn.net/my_sunshine26/article/details ...
- unity3D AR涂涂乐制作浅谈
unity3D AR涂涂乐制作浅谈 AR为现在是虚拟现实较为火爆的一个技术,其中有个比较炫酷的就是AR涂涂乐的玩法,这个技术可以把扫描到的图片上的纹理 粘贴到模型上实现为模型上色的功能,但是我们需要怎 ...