- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试创建在我的项目中的插件 .dll 中实现的类的实例以进行类型发现。我收到此异常:
Could not load type 'Action' from assembly 'SquidReports.DataCollector.Plugin.BES, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
这正是我使用的方法签名: https://msdn.microsoft.com/en-us/library/d133hta4(v=vs.110).aspx
换句话说,我试图根据程序集名称和类名称生成对象,如下所示:
object modelObject = Activator.CreateInstance((string)modelInfo.AssemblyName, (string)modelInfo.ModelName);
这里要注意的一个重要部分是,我使用的是程序集的“短”名称,而不是“完整”名称(包括版本、文化和 PublicToken)。但是,MSDN 明确指出:
'assemblyName' can be either of the following: The simple name of an assembly, without its path or file extension.
For example, you would specify TypeExtensions for an assembly whose path and name are .\bin\TypeExtensions.dll.
The full name of a signed assembly, which consists of its simple name, version, culture, and public key token; for example, "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".
具体来说,我正在尝试创建在程序集“SquidReports.DataCollector.Plugin.BES”中定义的类“Action”的实例。我在尝试创建实例的同一个 *.cs 文件的顶部将此程序集明确引用为 using 指令。
我已经尝试了以前问题/答案中的以下建议:
清理你的解决方案,重建并重试这似乎适用于某些 ASP.NET 项目,但这是普通的旧控制台应用程序。
检查配置文件中引用的程序集同样,这是一个简单的控制台应用程序,仅在同一解决方案的不同项目中使用 GAC 和库
<强>1。确保程序集位于正确的工作目录中:
我们在这里...
<强>2。确保程序集与磁盘上的版本相同
是的...
<强>3。最终推荐使用 fuslogvw.exe。
我没有使用该工具的经验,但有一件事我确实觉得很奇怪。运行调试 session 后,我的程序集的长名称和短名称版本都出现了:
我查看了两个日志。
短名称版本似乎会产生一些警告:
=== Pre-bind state information ===
LOG: DisplayName = SquidReports.DataCollector.Plugin.BES Partial) WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: SquidReports.DataCollector.Plugin.BES | Domain ID: 1
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
...但它以加载成功结束,并且在正确的位置清楚地提到了我的程序集:
LOG: Attempting download of new URL file:///C:/Source/C#/SquidReports/SquidReports.DataCollector/bin/x86/Debug/SquidReports.DataCollector.Plugin.BES.DLL.
长名称版本的日志不包含任何可疑消息。
还有什么想法吗?
编辑:这是 Action 类的最小定义。它纯粹是一个模型类。
public class Action : ICollectible
{
public Action()
{
// Empty constructor
}
public Action(int actionID, string siteID, string name)
{
this.ActionID = actionID;
this.SiteID = siteID;
this.Name = name;
}
public int ID { get; set; } // Identity ID assigned by DB
[Key]
public int ActionID { get; set; } // Identity ID assigned by API
public string SiteID { get; set; }
public string Name { get; set; }
}
ICollectible 接口(interface)和 [Key] 属性是另一个程序集的一部分。不确定这是否会产生影响?
编辑 2: 正如 Erik 在下面指出的,显然我也对这个 OTHER 程序集进行了完全相同的检查。
最佳答案
如您所见,正在加载程序集,只是找不到类型 (Action
)。您必须指定类型的全名 Namespace.Action
以便 .NET 找到它。
关于c# - 激活器.CreateInstance : Could not load type from assembly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28889117/
假设a是张量,那么有什么区别: 类型(a) a.类型 a.type() 我找不到区分这些的文档。 最佳答案 type 是 python 内置方法。 它将返回对象的类型。喜欢 torch.Tensor.
什么是 Type 1 的居民的例子?两者都不是 Type也不是Type的居民?在 Idris REPL 中进行探索时,我无法想出任何东西。 更准确地说,我正在寻找一些 x除了 Type产生以下结果:
我找到了一些资源,但我不确定我是否理解。 我找到的一些资源是: http://help.sap.com/saphelp_nw70/helpdata/en/fc/eb2ff3358411d1829f00
这两个函数原型(prototype)有什么区别? void apply1(double(f)(double)); void apply2(double(*f)(double)); 如果目标是将提供的函
http://play.golang.org/p/icQO_bAZNE 我正在练习使用堆进行排序,但是 prog.go:85: type bucket is not an expression
假设有一个泛型定义的方法信息对象,即一个方法信息对象,这样的方法Info.IsGenericMethodDefinition==TRUE:。也可以说它们也有一个泛型参数列表:。我可以使用以下命令获取该
在具有依赖类型的语言中,您可以使用 Type-in-Type 来简化语言并赋予它很多功能。这使得语言在逻辑上不一致,但如果您只对编程感兴趣而不对定理证明感兴趣,这可能不是问题。 在 Cayenne
根据 Nim 手册,变量类型是“静态类型”,而变量在内存中指向的实际值是“动态类型”。 它们怎么可能是不同的类型?我认为将错误的类型分配给变量将是一个错误。 最佳答案 import typetrait
假设您有以下结构和协议(protocol): struct Ticket { var items: [TicketItem] = [] } struct TicketItem { } prot
我正在处理一个 EF 问题,我发现它很难调试...以前,在我的系统中有一个表类型继承设置管理不同的用户类型 - 所有用户共有的一种根类型,以及大致基于使用该帐户的人员类型的几种不同的子类型。现在,我遇
这是我的 DBManager.swift import RealmSwift class DBManager { class func getAllDogs() -> [Dog] {
我正在尝试使用傅里叶校正图像中的曝光。这是我面临的错误 5 padded = np.log(padded + 1) #so we never have log of 0 6 g
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
请考虑以下设置: protocol MyProcotol { } class MyModel: MyProcotol { } enum Result { case success(value:
好吧,我将我的 python 项目编译成一个可执行文件,它在我的电脑上运行,但我将它发送给几个 friend 进行测试,他们都遇到了这个错误。我以前从未见过这样的错误。我使用 Nuitka 来编译代码
当我尝试训练我的模型时"ValueError: Type must be a sub-type of ndarray type"出现在 line x_norm=(np.power(x,2)).sum(
我尝试在另一个类中打断、计数然后加入对象。所以我构建协议(protocol): typealias DataBreaker = () -> [Double] typealias DataJoiner
我正在使用 VS 2015 更新 3、Angular 2.1.2、Typescript 2.0.6 有人可以澄清什么是 typings 与 npm @types 以及本月很难找到的任何其他文档吗? 或
我正在考虑从 VS2010 更改为 Mono,因此我通过 MoMA 运行我的程序集,看看我在转换过程中可能遇到多少困难。在生成的报告中,我发现我不断收到此错误: bool Type.op_Equali
主要问题 不太确定这是否可能,但由于我讨厌 Typescript 并且它使我的编码变得困难,我想我会问只是为了确定。 interface ISomeInterface { handler: ()
我是一名优秀的程序员,十分优秀!