AppSettings.json用于ASP.NET核心中的集成测试

我正在遵循本指南 。 我在API项目中有一个使用appsettings.json配置文件的appsettings.json 。 public class Startup { public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile(“appsettings.json”, optional: true, reloadOnChange: true) .AddEnvironmentVariables(); Configuration = builder.Build(); Log.Logger = new LoggerConfiguration() .Enrich.FromLogContext() .ReadFrom.Configuration(Configuration) .CreateLogger(); } 我正在看的特定部分是env.ContentRootPath 。 我做了一些挖掘,看起来我的appsettings.json实际上并没有复制到bin文件夹,但是这很好,因为ContentRootPath返回了MySolution\src\MyProject.Api\ ,这是appsettings.json文件所在的位置。 所以在我的集成测试项目中,我有这个测试: public class TestShould { private readonly TestServer _server; private readonly HttpClient _client; public TestShould() { […]

使用System.Uri删除多余的斜杠

我在我的程序中有一个条件,我必须组合一个服务器(例如http://server1.my.corp/ ),它可能有或没有带有相对路径的结尾斜线(例如/Apps/TestOne/ )。 根据文件 , Uri应该…… 通过压缩序列(例如/./,/../,//,…)来规范化分层URI的路径 因此,当我执行类似var url = new Uri(server + relativePath) ,我希望它可以采用http://server1.my.corp//Apps/TestOne/并删除双斜杠(即// – > / ),但ToString , AbsolutePath和各种选项仍显示冗余/重复斜杠。 我没有使用Uri吗?

使用reflection在类实例中按名称获取属性的值

可以说我有 class Person { public Person(int age, string name) { Age = age; Name = name; } public int Age{get;set} public string Name{get;set} } 我想创建一个接受包含“age”或“name”的字符串的方法,并返回一个具有该属性值的对象。 像下面的伪代码: public object GetVal(string propName) { return .value; } 我怎么能用reflection做到这一点? 我使用asp.net 3.5编译,c#3.5

如何在MS Word Keypress上举办活动

我正在开发一个MS-Word插件,我的代码必须能够访问用户通过键盘输入的字母。 private void ThisDocument_Startup(object sender, System.EventArgs e) { this.SelectionChange += new SelectionEventHandler(ThisDocument_SelectionChange); } void ThisDocument_SelectionChange(object sender, SelectionEventArgs e) { MessageBox.Show(e.Selection.Text); } 我认为SelectionChange事件可以给我文本,但事件不是在按键时引发的,有没有办法在按键时触发事件? 此外,如果有更简单的方法或提供function的开源项目,那将是受欢迎的。

如何通过Reflection获取属性的DisplayAttribute?

我有一个像这样的Helper方法来获取PropertyName(试图避免魔术字符串) public static string GetPropertyName(Expression<Func> expression) { var body = (MemberExpression) expression.Body; return body.Member.Name; } 但有时我的PropertyNames也没有好好命名。 所以我想宁愿使用DisplayAttribute。 [Display(Name = “Last Name”)] public string Lastname {get; set;} 请注意我使用的是Silverlight 4.0。 我无法找到通常的命名空间DisplayAttributeName属性。 如何更改我的方法来读取eproperty的属性(如果可用)? 非常感谢,

在WPF Treeview中根据枚举绑定图标

我在treeview TextBox,我想转换我的枚举: public enum AcceptationStatusGlobalFlag { NotReady = 0, Ready = 1, AcceptedByAdmin=2 } 到图标。 将有3个图标,比如ready.jpg,notready.jpg和AcceptedByAdmin.jpg 国家和地区有泳池AcceptationStatusGlobalFlag,我想要显示这个枚举/图标 <!—-> <!—->

未在Visual Studio 2010中加载引用DLL

我正在使用VS2010中的C#4.0项目,需要使用一些旧的DLL,其中包含在VS2008上使用C#3.5创建的控件。 当我第一次将DLL添加到引用时,我能够通过intellisense看到命名空间并创建其中一个控件的实例,但是当我去构建时,它会给我以下错误: The type or namespace name ‘BCA’ could not be found (are you missing a using directive or an assembly reference?) 我已经有一个针对该命名空间的using指令,现在用红色加下划线,表明VS无法找到它。 现在,intellisense根本不会接受那个命名空间。 我甚至尝试将控件添加到工具箱(它工作),但是当我将它们拖到GUI时,它说它无法找到DLL引用,即使它显然知道它在哪里。 我甚至尝试将目标框架更改为3.5,但仍然具有相同的结果。 有关为什么会发生这种情况的任何想法? 编辑 – 我注意到在VS输出的​​csc.exe参数中,它没有我正在尝试使用的DLL的任何/引用条目。 当我在VS2008中创建相同的基本项目时,存在这些条目。 此外,我可以成功引用VS2010中的DLL项目中的DLL …它似乎只是WinForms项目不起作用。

从代码动态设置成员资格的连接字符串

我有一个.net Web应用程序,它使用会员资格进行用户validation。 成员资格在web.config文件中有一个定义并引用文件中的连接字符串(web.config),我需要在web.config中动态地设置代码的成员关系的连接字符串不是静态的。 我怎样才能做到这一点? 提前致谢。

LongListSelector数据虚拟化

LongListSelector是否支持数据虚拟化? 我在几个博客上看到它确实如此,但无法让它发挥作用。 这是我尝试过的:我提供了一个IList实现作为ItemsSource到List。 问题是List调用GetEnumerator()而不是this[int index]来获取列表项。 所以我的问题是:如何为LongListSelector实现数据虚拟化?

NAudio使用C#播放正弦波x毫秒

我正在使用NAudio播放给定频率的正弦波,如在博客文章中播放的Nir的Sine Wave 。 我只想让声音播放()x毫秒然后停止。 我尝试了一个thread.sleep,但声音立即停止。 我尝试了一个计时器,但是当处理WaveOut时,会出现一个跨线程exception。 我尝试了这段代码,但是当我打电话给哔哔声时,程序冻结了。 public class Beep { public Beep(int freq, int ms) { SineWaveProvider32 sineWaveProvider = new SineWaveProvider32(); sineWaveProvider.Amplitude = 0.25f; sineWaveProvider.Frequency = freq; NAudio.Wave.WaveOut waveOut = new NAudio.Wave.WaveOut(WaveCallbackInfo.FunctionCallback()); waveOut.Init(sineWaveProvider); waveOut.Play(); Thread.Sleep(ms); waveOut.Stop(); waveOut.Dispose(); } } public class SineWaveProvider32 : NAudio.Wave.WaveProvider32 { int sample; public SineWaveProvider32() { Frequency = 1000; Amplitude […]