草庐IT

c# - 加载依赖于另一个域的程序集时出现 FileNotFound

这个问题在这里已经有了答案:AppDomain.Load()failswithFileNotFoundException(2个答案)关闭1年前。我正在尝试使用插件制作应用程序。我有MainLib.dll,我在其中使用1种方法创建了一些通用接口(interface)(让它成为ICommon)。然后,我制作了2个.dlls(plugins),它们引用了MainLib.dll并在某些类中实现了ICommon。此外,我删除了此.dll中的所有引用,System。然后,我创建了一个应用程序,它监视文件夹".\\Plugins"并加载newDomain中的所有.dll,检查.dll中的类型是否实现

c# - 使用自己的 app.config 的插件

在这里的一些人的帮助下,我终于设法构建了一个插件架构的工作解决方案,但现在出现了一个新问题。我的托管应用程序将它的app.config文件用于执行程序集(这是一个Windows服务)的一些默认值。每个插件都应该能够从单独的插件设置文件加载它自己的设置,因为主机不应该知道插件设置。在插件项目中,我还添加了一个app.config文件(带有一些设置和一个连接字符串),以便我可以实例化Properties.Settings类并在插件代码中使用它的属性。问题是当我更改插件的app.config中的设置(构建为plugin.dll.config)时,我看不到插件本身的那些更改,它仍然使用设计时设

c# - Visual Studio 2015 中是否有用于 C# 的 "Go To Variable Type Declaration"函数或一个免费插件?

voidMagicalFunction(MagicalTypemagic){...magic.Poof("something");...varfoo=magic.GetFoo();...}在变量magic上按下热键将导航到类型MagicalType的定义。在foo上按下热键将转到类型Foo的定义,由于类型推断,它在这里不直接可见。Resharper插件具有此功能(称为GoToTypeofSymbol),但是是否有内置的替代方案或免费扩展来执行此操作? 最佳答案 右键单击“var”关键字,从上下文菜单中选择“Gotodefinitio

c# - .NET 程序集插件安全

我在许多应用程序中使用了以下代码来加载公开插件的.DLL程序集。但是,我以前总是关心功能,而不是安全性。我现在正计划在除我以外的其他组可以使用的Web应用程序上使用此方法,并且我想确保该功能的安全性是合格的。privatevoidLoadPlugins(stringpluginsDirectory){Listfactories=newList();foreach(stringpathinDirectory.GetFiles(pluginsDirectory,"*.dll")){Assemblyassembly=Assembly.LoadFile(path);foreach(Typety

c# - .NET Framework 4.x 中的插件系统安全性(无 CAS)

我想实现的是一个具有以下功能的插件系统:从我(开发人员)可能不信任但安装插件的最终用户信任的来源加载外部插件在特定范围内授予每个插件权限;例如一个插件可能有权从特定位置读取文件,而其他插件可能被允许连接到特定网站位置每个插件权限的特例:与另一个对象交互,很可能作为接口(interface)实例提供,而不访问其任何非公共(public)成员(甚至不使用偷偷摸摸的反射技术)在插件代码造成任何危害之前阻止最终用户不同意的操作,例如访问非公共(public)成员或在文件系统上操作在我的搜索过程中,我发现大多数涉及代码访问安全的SO解决方案,据我所知,这些解决方案在.NET4.x中已经过时。我还

c# - 在 C# 项目中动态加载 DLL 文件 - 如何?

在我的项目中我需要使用插件。但是要在我的项目中使用这些,我需要导入插件的引用。由于我无法事先知道项目使用了多少或哪些插件,所以我想在我的项目中动态导入它们。Stringpath=Application.StartupPath;string[]pluginFiles=Directory.GetFiles(path,"*.dll");ipi=newIPlugin[pluginFiles.Length];Assemblyasm;for(inti=0;i在此代码示例中,我搜索了所有.dll文件并将它们放入字符串列表中。但是我现在如何加载所有这些.dll文件呢?或者有没有办法在不真正导入这些文件

c# - 从 .net DLL 导出 native C 函数?

这个问题在这里已经有了答案:IsispossibletoexportfunctionsfromaC#DLLlikeinVSC++?(4个答案)关闭6年前。我有一个用C#编写的.net程序集,我希望从该程序集中导出nativeC函数。我有一个应用程序,它将对在“插件”文件夹中找到的任何DLL执行“LoadLibrary()”。加载DLL后,应用程序执行“GetProcAddress”以查找名为“Register”的函数。应用程序希望此函数遵循C调用约定。如何从我的.net程序集中导出名为“Register”的函数,以便我可以成功连接到此应用程序的插件系统?谢谢,安德鲁

c# - 获取 VS 插件或 DXCore 插件的解决方案/项目文件列表

我正在尝试为VisualStudio编写一个插件,除其他外,它需要跟踪VisualStudio解决方案中的每个文件。我知道我需要订阅哪些事件(打开解决方案时,在其中添加/删除/编辑文件时,项目相同等),但我不明白如何实际获取文件列表来自其中任何一个。我最近安装了CodeRush并一直在玩DXCore框架。我对它在插件方面的方法感到非常满意,但我仍然没有看到一种明显的方法来获取解决方案中的文件列表。总结一下:如何通过VisualStudioSDK或DXCore获得解决方案及其项目中的可靠文件列表? 最佳答案 谢谢,里德;你链接的文章让

c# - Assembly.GetTypes() - ReflectionTypeLoadException

我们为我们的应用程序实现了一个插件框架,并使用Assembly.Loadfrom加载插件程序集。然后我们使用GetTypes()并进一步检查每个插件文件的类型以获得支持的接口(interface)。插件的路径由用户提供,我们循环浏览文件夹中的每个文件以查看它(插件)是否支持我们的插件界面。如果是,我们将创建一个实例,如果不是,我们将转到下一个文件。我们从一个代码库(appA_1和appA_2)构建两个版本的软件。当插件由与插件文件同时构建的应用程序加载时,加载插件效果很好。但是,如果我们构建appA_2并指向appA_1的插件文件夹,则在调用GetTypes()时会出现异常。我们代码的

c# - 是否有用于 Visual Studio 的断点插件?

背景在一些足够大的应用程序中,与实际调试相比,您可能会花更多的时间来弄清楚如何向下钻取各个层:我现在使用的一款软件就是这种情况。撇开关注点的布局/分离问题不谈,最好有一个断点插件,它允许您根据正在处理的Bugzilla/Jira/Fogbugz/SVN缺陷条目加载断点。问题是否存在任何适用于VisualStudio的插件允许您将切换的断点“保存”到文件中,从而允许您根据正在处理的错误加载各种断点?作为该问题的附加信息;如果没有任何此类插件,任何人都可以向我指出有关为VisualStudio创建插件的“好”(相当主观的术语,但在这种情况下我的意思是解释性和有用的)资源吗?