- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先我试着解释这个故事。
我想使用 REST-API 扩展 C++/MFC 应用程序,并决定为此目的在库中使用 Asp.Net-Core 5,方法是将其桥接到带有 C++/CLI 库的非托管代码。 (有一个单独的 ASP 应用程序是双倍的支出,并且需要在 C# 中重写所有逻辑。在这方面 RESTful-Server 应该在同一进程中实现。)
Asp-Host就是这样启动的; C++/MFC -> C++/CLI -> ASP-Library(CLI中引用ASP,Native中引用CLI)
第一个问题是;通过构建主机 Microsoft.Extensions.Hosting.Abstractions-Assembly 无法解决。我发现“我的 CLI 库”.runtimeconfig.json 有错误的框架引用并导致它无法解决。这意味着生成的 runtimeconfig.json 是错误的。每次构建后,必须手动使用 AspNetCore 而不是 NETCore 进行更正。 (在 PostBuildEvent 中完成)
下一个问题;在 ASP 主机构建期间,ASP 无法解析“My ASP Library.dll”-Assembly(在反射中)。 OnAssemblyResolve 事件通过给出正确的路径解决了这个问题。我不确定这是否是正确的解决方案。因为 AppDomain.BaseDirectory 是一个空字符串,可能是找不到库的原因。
在 AssemblyResolve 事件中;
Assembly::LoadFrom(assemblyFile)
最后我可以启动服务器,它工作正常。然后需要使用依赖注入(inject),我的服务无法从 Controller 解析。
public interface IServerImpl
{
void OnFail(String msg);
}
public class CServerImpl : IServerImpl
{
public void OnFail(String msg)
{
}
}
...在启动
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IServerImpl, CServerImpl>();
services.AddControllers();
}
... Controller
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private readonly ILogger<WeatherForecastController> _logger;
private readonly IServerImpl _serverImpl;
public WeatherForecastController(ILogger<WeatherForecastController> logger, IServerImpl serverImpl)
{
_logger = logger;
_serverImpl = serverImpl;
}
...
}
有什么解决方法可以让它工作吗?这些问题是 Asp.Net-Core 中的错误还是我做错了什么?
最佳答案
问题已经解决。使用 Assembly.LoadFrom()
解决程序集事件导致我的 ASP 程序集被加载(或映射)两次。在不同的程序集加载上下文中加载它意味着,加倍类型,静态变量等。在这方面我注册了IServerImpl
服务在 Controller 中搜索到另一个 IServerImpl
类型。类型名称相同,但不相同。
有关更多信息,请参阅技术挑战:https://docs.microsoft.com/en-us/dotnet/api/system.runtime.loader.assemblyloadcontext?view=net-5.0
GitHub 上的另一个问题:https://github.com/dotnet/runtime/issues/39783
在程序集解析事件中,我现在返回加载的程序集,而不是再次加载它;
AppDomain.CurrentDomain.GetAssemblies()
.SingleOrDefault(asm => asm.FullName.StartsWith(args.Name.Split(',')[0] + ","))
仍然很好的答案澄清了“为什么我的 ASP 程序集未从框架中找到?”
关于c++ - Asp.Net Core Dependency Injection 不起作用,如果它是从非托管/ native 启动的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67317689/
在 Windows 世界中,什么是正确的名称。具有导出函数的老式 C++ DLL?不是 COM DLL,也不是 .NET DLL。我们以前通过调用 LoadLibrary() 和 GetProcAdd
目前我正在使用javaEE7,我有一个场景如下。在我的 JSF Web 应用程序中,我有一个事件监听器(不是 JSF 事件),当事件调用时,它会执行某些操作,然后将这些信息更新到我的 Web 应用程序
这不是 AJAX 请求/响应回调问题... 我正在使用 Dojo 1.5 构建网格。我正在尝试 dojo.connect具有功能的扩展/收缩按钮。我的问题是 grid.startup()在创建实际 D
非 Webkit Opera 是 very specific在某些功能中,因此通常通过 JavaScript 检测到 the following way . 但是,Opera Next 几乎是 Goo
我已查看以下链接中给出的所有日志,但未能找到 IP 地址: https://developer.couchbase.com/documentation/server/3.x/admin/Misc/Tr
我有一个命令行程序,它根据一组源文件生成一个我想在我的 Android gradle 构建 (A) 中使用的 jar 文件。这个命令行程序只是将一个 jar 文件存储在磁盘上的一个目录中。 我如何创建
下面的 htaccess 命令将所有非 www 转移到 http www RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^
我正在使用自定义链接器脚本将内核镜像分为两部分。第一个是普通代码和数据,第二个是初始化代码和不再需要时将被丢弃的数据。初始化部分也不像内核本身那样在地址空间之间共享,因此如果 fork() 仍然存在(
这个问题在这里已经有了答案: Several unary operators in C and C++ (3 个答案) What is the "-->" operator in C++? (29
假设我有一个类设置如下: class A { public: virtual void foo() { printf("default implementation\n"); } }; c
#include using namespace std; int main(int argc, char *argv[]) { int i=-5; while(~(i)) {
近期,百度搜索引擎变化无常,很多企业站、行业站、门户站、论坛等站点遭到了降权,特别是比比贴分类信息网直接遭到了拔毛,这对于广大站长来说是一种打击,也是各个企业、行业的打击。 至今,很多网站已经恢复
我现在正在使用 IBM TPM v1332 + IBM TSS v1470 并尝试将一些基本关键字/密码存储到 TPM 上的非 volatile 内存中。我找到了两种方法。一种是创建一个密封对象并使用
我的 PHP 脚本中有一个正则表达式,如下所示: /(\b$term|$term\b)(?!([^)/iu 这与 $term 中包含的单词匹配,只要前后有单词边界并且它不在 HTML 标记内即可。 但
我想显示用户名称地址(请参阅 www.ipchicken.com ),但我唯一能找到的是 IP 地址。我尝试了反向查找,但也没有用: IPAddress ip = IPAddress.Parse(th
只有 UI 线程能够显示到屏幕上,还是其他线程也可以这样做? 最佳答案 不,您只能直接从 UI 线程访问 UI,但您可以编码来自其他线程的结果,例如使用 Control.Invoke 或 contro
我正在使用现代 Excel 滚动条(不是旧的 ActiveX 类型,即开发人员 > 插入 > 表单控件 > 滚动条)并且想检测它的值何时更改。我找不到有关此类对象的更改事件的任何信息。您可以在单击时分
当我使用这段代码时 IE 6 确实正确使用了指定的样式表,但所有其他浏览器在应该使用基本上声明的样式表时会忽略这两种样式表,如果您不是 IE,请使用此样式表。 有什么想法吗? 最佳答案 n
我想指定 2 mssql 表之间的关系。 付款类别和付款。 paymentcategory.id 加入 payout.category 列。 在 payout.json 模型中 我指定为外键:id,
我正在尝试制作非 volatile UDF,但似乎不可能。因此,这是我非常简单的test-UDF: Option Explicit Dim i As Integer Sub Main() i = 0
我是一名优秀的程序员,十分优秀!