草庐IT

dll-injection

全部标签

c# - 我可以在 DLL 中嵌入其他文件吗?

我正在通过API为另一个应用程序编写插件。插件以DLL的形式分发。是否可以在DLL文件中嵌入其他文件,如pdf、图像、chm帮助文件等...我希望能够为我的插件提供文档,但我仍然希望保留分发插件的能力-作为单个文件,用户只需拖放到应用程序上即可安装。 最佳答案 当然,您可以在DLL中嵌入资源。然后在运行时你只需做:Streamstream=Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pd

c# - 使用属性注入(inject)而不是构造函数注入(inject)

长话短说,我正在尝试将ELMAH与MVC2和Ninject结合使用,并且我需要使用无参数构造函数。我在这里创建了一个关于它的初始帖子:UsingaparameterlesscontrollerconstructorwithNinject?有人建议我使用属性注入(inject)而不是构造函数注入(inject)。所以我从这个开始:publicclassDepartmentsController:Controller{privateIDepartmentsRepositorydepartmentsRepository;publicDepartmentsController(IDepartm

c# - 如何给 DLL 中的一行代码打补丁?

我有一个缺少一行代码的.Netdll。我想修补那个DLL,但我没有源代码。我该怎么办?有谁知道快速修补此类内容的方法吗? 最佳答案 随着ReflexilReflector的插件,修改DLL的一小部分又快又容易。我曾在少数情况下使用它来更改部署的dll中的一两行,通常是为了禁用某些由条件导致的行为(不,不是破解应用程序,合法使用我们自己的代码以避免完整部署的重量)。 关于c#-如何给DLL中的一行代码打补丁?,我们在StackOverflow上找到一个类似的问题:

c# - 依赖注入(inject)和 AppSettings

假设我正在为我的应用程序定义一个浏览器实现类:classInternetExplorerBrowser:IBrowser{privatereadonlystringexecutablePath=@"C:\ProgramFiles\...\...\ie.exe";...codethatusesexecutablePath}乍一看这似乎是个好主意,因为executablePath数据靠近将使用它的代码。当我尝试在另一台具有外语操作系统的计算机上运行相同的应用程序时,问题就来了:executablePath将具有不同的值。我可以通过AppSettings单例类(或其等效类之一)解决此问题,但

c# - 如何使用 Ioc Unity 注入(inject)依赖属性

我有以下类(class):publicinterfaceIServiceA{stringMethodA1();}publicinterfaceIServiceB{stringMethodB1();}publicclassServiceA:IServiceA{publicIServiceBserviceB;publicstringMethodA1(){return"MethodA1()"+serviceB.MethodB1();}}publicclassServiceB:IServiceB{publicstringMethodB1(){return"MethodB1()";}}我将Uni

c# - 使用 Ninject 的 .NET MVC 依赖注入(inject)

我刚刚开始使用.NET进行编程,但在实现依赖注入(inject)(使用Ninject)时遇到了一些问题。我正在创建某种餐饮应用程序,用户可以在其中浏览城镇,在城镇中浏览餐馆,在餐馆中浏览食物。我正在使用UnitOfWork和存储库模式,例如我通过id访问城镇:_unitOfWork.TownRepository.GetByID(id);现在我开始将服务实现到应用程序中,并且遇到了依赖注入(inject)的需求。我已经创建了ITownService、IRestaurantService和IFoodService(因为我已经创建了TownRepository、RestaurantRepos

c# - 从另一个 DLL 引用一个 DLL

我有一个C#应用程序,我们称它为App.exe。它引用名为A.dll的DLL,后者又引用另一个DLL,即B.dll。然而,它们被引用的方式有点不同。在A.dll的代码中,直接引用了B.dll(通过Project>References>AddB.dll)。但是,我的App.exe具有在运行时使用Assembly.Load()等加载A.dll的代码。总结一下,App.exe----(runtimeloading)--->A.dll----(directreference)--->B.dll所有三个东西(App.exe、A.dll和B.dll)都位于同一个目录中,比方说ExeDir。现在我要

c# - Caliburn 微构造函数注入(inject)失败

我正在学习CaliburnMicro并尝试使用officialsite中的EventAggregator.但是,我得到了一个异常(exception)"Noparameterlessconstructordefinedforthisobject."消息本身很清楚,但示例也不包含无参数构造函数。如果我添加一个,带有参数的构造函数未命中,IEventAggregator仍未正确注入(inject)。这是添加无参数构造函数后我的发布者虚拟机(没有它,将抛出异常):publicMainViewModel(){}publicMainViewModel(IEventAggregatorea):th

c# - 在没有类型库的情况下使用 C# 中的 COM dll

我需要使用很久以前用Delphi开发的COM组件(dll)。问题是:dll不包含类型库…….NET中的每个互操作功能(例如TlbImp)似乎都依赖于TLB。该组件已在此处的Delphi程序中使用多年,没有出现任何问题,因为“使用Delphi的COM对象不是什么大问题,因为我们知道接口(interface)”(引用Delphi开发人员的话)。有什么方法可以在没有TLB的情况下从c#使用此DLL?我试过将DLL用作非托管,但它导出的唯一方法是DllUnregisterServer、DllRegisterServer、DllCanUnloadNow和DllGetClassObject。我知道

C# 更新 DLL 而无需重新编译项目

我已经编写了一个小程序,其中引用了一个将包含在安装文件中的dll文件。我仍然需要一种更新dll的方法(以防我更改某些功能),而无需再次重新下载整个程序,只需替换dll文件...这可能吗?我刚刚在某处读到我必须用新的dll版本更新xml文件,但我确实需要完整的步骤才能成功更新dll...非常感谢任何帮助......非常感谢更新我真的不知道该说什么...两种方式都很棒...非常感谢您的帮助...我今晚会测试它们并将答案写在这里...再次感谢:) 最佳答案 如果您已经分发了您的应用程序,则可以通过配置重定向程序集绑定(bind)。Youc