草庐IT

dll-interface

全部标签

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# - 抽象类和接口(interface)的多重继承

我用C#.NET写了下面的代码publicinterfaceIWork{voidfunc();}publicabstractclassWorkClass{publicvoidfunc(){Console.WriteLine("CallingAbstractClassFunction");}}publicclassMyClass:WorkClass,IWork{}编译时,我没有收到任何错误。编译器没有强制我实现方法“func();”在派生自接口(interface)“IWork”的“MyClass”中。之后,我可以优雅地创建类“MyClass”的实例并调用函数“func()”。为什么编译

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

c# - 如何从 *.dll 中检索所有公共(public)方法

我有一个用C#编写的*.dll,我需要获取该*.dll中包含的所有公共(public)方法或类的列表。有什么方法可以用C#以编程方式完成吗? 最佳答案 是使用Assembly.GetTypes提取所有类型,然后对每种类型使用反射来迭代公共(public)方法。Assemblya=Assembly.LoadWithPartialName("...");Type[]types=a.GetTypes();foreach(Typetypeintypes){if(!type.IsPublic){continue;}MemberInfo[]me

c# - 在运行时调试链接到的 dll

为了模块化,我在运行时而不是编译时链接到我的解决方案中的dll,以允许我独立更新它。当我在库项目中放置断点时,这些断点不会在链接到类和创建类型时触发。作为引用,这是反射代码:Assemblya=Assembly.LoadFile(FULL_APPLICATION_CACHE+targetVersion+"\\Core.dll");TypeengineCoreType=a.GetType("Core.EngineCore");objectinstance=Activator.CreateInstance(engineCoreType);在这种情况下,VisualStudio是否可以提供其

c# - 向分部类添加接口(interface)

我有一个由第三方工具生成的类:publicpartialclassCloudDataContext:DbContext{//...SNIPPED...publicDbSetUsers{get;set;}}我创建了一个部分类,然后分配了一个接口(interface),以便稍后可以注入(inject)这个类:publicpartialclassCloudDataContext:IDataContext{}IDataContext具有单个属性Users。这不会编译,编译器会提示接口(interface)没有实现。如果我将接口(interface)移动到生成的类,它工作正常。我不能那样做,因为

c# - 接口(interface)声明和通用约束

基本的C#语法问题:所以我有这门课publicclassBrandQuery:QuerywhereT:Ad{//...}我如何指定BrandQuery实现一个接口(interface),比如IDisposable?这显然是错误的方式:publicclassBrandQuery:QuerywhereT:Ad,IDisposable{//...}因为那只会对T施加一般约束。 最佳答案 泛型类型约束遵循所有基类/接口(interface):publicclassBrandQuery:Query,IDisposablewhereT:Ad{/

c# - TuesPechkin 无法加载 DLL 'wkhtmltox.dll'

我已经使用TuesPechkin一段时间了,今天我去更新nuget包到新版本2.0.0+并注意到Factory.Create()不再解析,所以我去阅读GitHub所做的更改并注意到它现在需要dll的路径?IConverterconverter=newThreadSafeConverter(newPdfToolset(newStaticDeployment(DLL_FOLDER_PATH)));在过去的几个小时里,我尝试了几乎所有我能想到的路径,“\bin”、“\app_data”、“\app_start”等,但我似乎无法找到或弄清楚它是什么想要路径和什么dll?我可以在我的bin文件夹

c# - FormsViewGroup.dll (v7.1) 的 $(TargetFrameworkVersion) 大于项目 (v6.0) 的 $(TargetFrameworkVersion) xamarin

错误出现在visualstudio2017和xamarin上:SeverityCodeDescriptionProjectFileLineSuppressionStateWarningThe$(TargetFrameworkVersion)forFormsViewGroup.dll(v7.1)isgreaterthanthe$(TargetFrameworkVersion)foryourproject(v6.0).Youneedtoincreasethe$(TargetFrameworkVersion)foryourproject.IpiCommunicationXamarin.And