将数据传递到startup.cs

2024-04-22

如何将数据传递到startup.cs?

这是用于集成测试使用WebHostBuilder and TestServer

我需要根据测试夹具传递不同的数据。因此,例如,不想从配置文件中提取它

数据将提供给startup.cs中注册的中间件

文档似乎表明这应该有效:

var configBuilder = new ConfigurationBuilder()
                .AddInMemoryCollection(new[]
                {
                    new KeyValuePair<string, string>("key", "value"),
                });

            var configuration = configBuilder.Build();

            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseConfiguration(configuration) // config added here
                .UseStartup<Startup>()
                .Build();

            host.Run();

但是当我检查startup.cs中的Configuration对象时,密钥不存在。并且只有startup.cs中定义的提供者可用。

我目前正在尝试在program.cs中执行此操作来测试这个概念,然后稍后将进行集成测试

有什么想法我做错了吗?

有没有更好的方法将数据传递到启动中?


将数据发送到的一种方法Startup将是注册一个服务Main. WebHostBuilder has ConfigureServices可以使用的方法就像ConfigureServices您可以在中实现的方法Startup class.

例如,您可以创建一个带有静态变量的类(不是最好的主意,但可行)

public class DataContainer
{
   public static string Test;
}

然后设置其值并将其添加为单例服务

DataContainer.Test = "testing";

var host = new WebHostBuilder()
            .ConfigureServices(s => { s.AddSingleton(typeof(DataContainer)); })
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseConfiguration(configuration) // config added here
            .UseStartup<Startup>()
            .Build();

在此之后你的Startup可以使用常规的注入方式来得到这个

public Startup(IHostingEnvironment env, DataContainer data)
{
  // data.Test is available here and has the value that has been set in Main
}

注入当然适用于此后的任何类和方法,而不仅仅是构造函数。

我不确定这是否比实际创建一个具有静态值的类更好,但如果需要更改该类,有时可以将其制作成接口和其他常见的注入好处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据传递到startup.cs 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • SwiftUI 根据设备设置 navigationViewStyle

    我试图让我的导航视图样式在 iPad 上堆叠 但在 iPhone 上默认 Code navigationViewStyle UIDevice current userInterfaceIdiom pad StackNavigationVie
  • 在 Excel 上执行多个更新命令

    我有一个 Excel 文件 我想更新工作表中的多行 所以我编写了以下代码 OleDbConnection cn new OleDbConnection Provider Microsoft Jet OLEDB 4 0 Data Source
  • VBA计算周末天数

    我正在寻找方法计算两个日期之间周末 周六和周日 的天数使用VBA 我已经在网上搜索过 但都显示了如何计算工作日 有些使用 DateDiff 有些使用 Networkdays 但没有周末的日子 而且我已经成功地在工作日执行此操作 例子 从日期
  • 基于不同列值的默认列值

    SQL Server 2005 我有一个带有 Column 的表 但是 Column int 我可以添加默认值吗ColumnB以便ColumnB是 15 如果ColumnA是 1 并且ColumnB是 0 如果ColumnA is 0 我知
  • C 中的指针与数组,非同小可的区别

    我以为我真的理解了这一点 重新阅读标准 ISO 9899 1990 只是证实了我明显错误的理解 所以现在我在这里问 以下程序崩溃 include
  • 如何在变量中引用带有空格的文件名或路径? [复制]

    这个问题在这里已经有答案了 我正在尝试编写一个简单的 shell 脚本 但很难弄清楚为什么我不能在用于在 shell 脚本中生成文件名的字符串变量中保留空格 bin bash let minus3 10 date Y 3 let minus
  • 如何编写 boost::spirit::qi 解析器来解析从 0 到 std::numeric_limits::max() 的整数范围?

    我尝试使用qi uint parser
  • C# 如何计算出对象的哈希码?

    这个问题来自于讨论tuples https stackoverflow com questions 101825 whats the best way of using a pair triple etc of values as one
  • 如何检查 MySQL 和 Tomcat 是否正在运行?

    我创建了一个 Java 应用程序 该应用程序分为不同的子组件 每个子组件都在单独的 Tomcat 实例上运行 此外 某些组件通过 Hibernate 使用 MySQL 数据库 我现在正在创建一个管理控制台 在其中报告所有 Tomcat 实例
  • 使用 ashx 处理程序显示图像

    我的 aspx 页面中有以下图像 td td
  • Glassfish 和 JBoss 5 的现实比较?

    在现实世界中有人有这两种经历吗 它们在性能 内存使用 速度等 方面如何比较 稳定 JBoss Seam 在 Glassfish 上运行良好吗 从我自己的经历来看 有几点 GlassFish 拥有更好的管理控制台 JBoss 有三个控制台 每
  • 从 PyQt GUI 连接到串行

    我编写了一个程序来从串行发送和接收数据 但是我有一个问题 我想创建一个函数 connect 或一个类 当我按下按钮时 该函数就会被执行 但是如果我创建 MainWindow 类中的这个函数 TestThread 类中的变量 ser 未初始化
  • 错误:EBADF,使用永远的 nohup 运行节点时错误的文件描述符

    我在运行小型 Web 服务器 从文件系统提供文件 时遇到 Node js 问题 当开始时node server js它的工作方式就像一个魅力 但是当用 nohup 或永远的 Node js 启动它时找不到文件 这对我有用 nohup nod
  • 如何 grep 查找同一行中存在的两个单词? [复制]

    这个问题在这里已经有答案了 如何 grep 查找包含两个输入单词的行 我正在寻找包含这两个单词的行 我该怎么做 我尝试过这样的管道 grep c word1 grep r word2 logs 它只是在第一个管道命令之后卡住了 Why 为什
  • 关于使用 playframework 实现购物车的建议

    我正在学习使用playframework通过编写代码来实现webstore用于销售物品 我已经实施了Admin区域使用crud and secure模块 现在 我想创建一个shopping cart用户可以向其中添加商品并继续结账 我对电子
  • 如何更改 codeigniter 中显示的错误

    The URI you submitted has disallowed characters 我该如何拦截这个错误 他们是一个callback 功能 当我尝试在 URL 中使用 时 会发生此错误 例如 我输入 1 1 我得到这个错误 我想
  • ios5 - 带有故事板的模态视图控制器的大小

    有没有什么方法可以调整使用故事板segue以模态方式呈现的视图控制器的大小 如何通过翻转过渡从该模态视图控制器中呈现另一个视图控制器 如果我将其定义为 Style Modal Presentation Default Transition
  • hibernate是否支持count(*) over()

    我试图避免必须为计数创建一个单独的查询 为实际查询创建一个单独的查询 我发现 SessionImpl createQuery 需要相当多的时间来执行复杂的查询 通过将 count 和主查询结合起来 我可以消除一个 createQuery 调
  • 我们如何修复透明/半透明可组合项上的材质阴影故障?

    如果您还不知道 Android 的材质阴影存在一个缺陷 即材质设计及其表面 照明和高度概念带来的阴影 另外 如果您不知道 Compose 使用许多与View框架 包括那些负责所述阴影的框架 因此它具有与View是的 至少现在是这样 Card
  • 将数据传递到startup.cs

    如何将数据传递到startup cs 这是用于集成测试使用WebHostBuilder and TestServer 我需要根据测试夹具传递不同的数据 因此 例如 不想从配置文件中提取它 数据将提供给startup cs中注册的中间件 文档