无法使用带有GET请求的动词类型发送内容正文

我目前正通过WebApi收到请求,并试图将其重新发送到另一个站点。 目标是通过示例接收请求: http:// localhost:9999 / #q = test 。 然后将其转发到真实网站:(我的测试我设置了google.com) http://google.com/#q=test 我有以下代码: protected override async Task SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { string url = request.RequestUri.PathAndQuery; UriBuilder forwardUri = new UriBuilder(_otherWebSiteBase); forwardUri.Path = url; if (request.Method == HttpMethod.Get) { //request.Method = HttpMethod.Post; } request.RequestUri = forwardUri.Uri; request.Headers.Host = forwardUri.Host; return await _client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);//_client is an HttpClient […]

使用SendKeys.Send()模拟右Shift + Ctrl

我正在尝试将Shift + Ctrl发送到我的RichTextBox 。 但默认情况下它会发送左键。 SendKeys.Send(“^+”); 无论如何都要模拟右Shift + Ctrl ?

找不到具有名称/密钥的资源

我正在尝试使用Silverlight 4 Toolkit对用户界面进行unit testing。 当我尝试实例化UserControl时,它会抛出一个exception,因为在UserControl的XAML中它使用了Style定义的App.xaml。 有没有办法在实例化UserControl之前以某种方式加载资源? 我是以错误的方式来做这件事的吗? 这是unit testing代码: [TestMethod] public void ExerciseTimePeriodUserInterface() { CustomUserControls.TimePeriodFilter timePeriodFilter = new CustomUserControls.TimePeriodFilter(); } 这是UserControl中样式的引用: 最后,这是App.xaml中定义的样式:

从IronPython调用C#对象

我有以下C#代码将其编译为MyMath.dll程序集。 namespace MyMath { public class Arith { public Arith() {} public int Add(int x, int y) { return x + y; } } } 我有以下IronPython代码来使用此对象。 import clr clr.AddReferenceToFile(“MyMath.dll”) import MyMath arith = Arith() print arith.Add(10,20) 当我使用IronPython运行此代码时,我收到以下错误。 回溯(最近的呼叫最后): 在初始化中将文件ipycallcs,行未知 NameError:未定义名称“Arith” 可能有什么问题? 添加 arith = Arith()应该是arith = MyMath.Arith()

C#中的灵活日志界面设计

我想编写自己的Logging类(在C#中),它实现了一个标准接口,我可以从代码的任何部分调用它。 我的想法是让多个Log类实现Logger接口,每个接口都针对其特定的日志目的地,例如,FileLogger将实现日志记录到文件,TextBox记录器将实现登录到Form中的多行TextBox,DBLogger将实现日志记录到数据库表等 此外,每个记录器类可以具有嵌套的记录器或链式记录器类,因此从应用程序代码单次调用Log()方法可以在多个目的地中记录消息; 示例在单个调用中记录到Form上的文件和文本框。 我面临的困难是: 通常我会记录一个正在运行的日志文件(其中包含调试所需的所有日志消息),一个审阅日志文件(其中只包含要由用户审阅的日志消息,或需要用户操作的日志消息),多行文本框屏幕(将复制所有日志消息以向用户提供进度指示),以及另一个多行文本框(将仅记录用户要查看的消息)。 当我调用logger.Log(消息)时,某些消息可能不适用于特定的日志目标。 例如,某些消息可能仅记录在正在运行的日志文件或进度文本框中,但不会记录在用户评论文本框中,反之亦然。 由于记录器将被链接以便单个函数调用可以登录到所有必需的目标,因此特定记录器如何识别日志消息不适用于它并因此忽略日志消息? 我的示例日志界面是: public interface Logger { public void Log(string msg); public void Log(string msgType, string msg); public void InitLogSession(); public void EndLogSession(); public void AddLogger(Logger chainedLogger); public void RemoveLogger(Logger chainedLogger); } public class FileLogger : Logger { //implement methods } public class TextBoxLogger : Logger { //implement […]

适用于OS X的MS Office Interop

我一直在寻找与Mac版Office(特别是PowerPoint)互操作的信息。 我无法找到任何可用API的文档,甚至找不到用于访问它们的协议…(类似COM?Apple原生自动化API?完全不同的其他内容?) 但是,似乎有可能。 Mac中存在各种“PowerPoint远程控制”应用程序,它们可以制作PowerPoint切换幻灯片的运行实例,甚至可以从每张幻灯片中提取演示者注释。 这显然是一些味道的互相支持! 所有与Microsoft.Office.Interop引用相关的都需要有窗口,我的问题是否有任何解决方案,或者我只是在虚拟机上运行Windows … 更新 所以我们做了一些研究: 首先我们尝试使用Mono,允许你在mac中构建C#,这种方法不成功,因为powerpoint演示自动化的库需要一个窗口 我们尝试了Apache.poi,我们成功地创建了修改powerpoint演示文稿,但这种方法并不是实时的,这是不利的 第三种方法和最逻辑但有限的(仅向前和向后移动)是模拟mac命令键(箭头)(用于向前和向后),因此无论何时需要我们重新创建这些命令 这三种方法是向前迈进的,但不允许我们实时绘制或修改演示文稿的部分内容,寻求建议。 先感谢您

通过TCP发送和接收XML数据

我一直在试图弄清楚如何通过TCP服务器发送和接收XML数据。 我来自java编程背景,所以我有点超出我的深度。 如果我只发送纯文本,我的程序可以工作,但是一旦我尝试发送xml数据,它就会挂起。 服务器永远不会收到消息。 我一直在寻找代码来做到这一点,并没有找到任何运气,我已经看到许多在线的代码示例不起作用。 如果你们中的任何一个人能解决这个问题,我将非常感激。 我在这里寻找代码示例,而不是解释我应该做些什么来解决它。 我只编写了C#几天。 以下是XML请求示例。 AGENT GET_SYSTEM_INFO UMOHB 这是我的TCP客户端代码 public static void sendStringRequest(String hostname, int port, String message) { String response = String.Empty; TcpClient client = getConnection(hostname, port); Console.WriteLine(message); NetworkStream stream = client.GetStream(); StreamWriter writer = new StreamWriter(stream, Encoding.UTF8); writer.AutoFlush = false; writer.Write(Encoding.UTF8.GetBytes(message).Length); writer.Write(message); writer.Flush(); StreamReader reader = new StreamReader(stream, Encoding.UTF8); […]

希望Autofac不注册任何具有多个实现的接口

所以我目前正在为我们公司测试Autofac。 我们想要遵守以下规则: 如果一个接口只实现了一次,那么使用builder.RegisterAssemblyTypes自动添加它(见下文)。 否则,我们需要确保手动编写将决定哪个实现是“默认”实现的规则。 我有以下代码: var builder = new ContainerBuilder(); builder.RegisterAssemblyTypes(Assembly .Load(“Lunch.Service”)).As(t => t.GetInterfaces()[0]); builder.RegisterType() .As().SingleInstance(); builder.RegisterModule(new DestinationModule()); builder.RegisterType() .As().PropertiesAutowired(); 现在,它正在工作,但它决定了第一个实现是哪个,并将自动创建。 如果我们不手动创建“规则”,我们希望将其设为手动过程并抛出错误。 这可能吗?

如何在某些方法执行时在aspx页面(WebForms)中显示等待进程

如何在我的ASPX网页中显示某种类型的消息( 我正在使用WebForms,而不是MVC ),这表示我的项目的某些方法正在执行时作为“等待进程”。 我不是在询问如何制作一些HTML / CSS / DOM的东西,我要求更多关于异步检查的内容。 例如:来自网络的一些数据可能不会很快传递给客户端,并且当它确实发生时 – 它对用户来说看起来非常难看。 它只是空闲而且看起来像一个有bug的页面,其中没有明显突出的状态( 许多用户不在浏览器中观看页面加载状态,他们希望在Web应用程序中完全查看它,如在桌面应用程序中 )。 我想显示一条消息,如“等待操作结束” ,我不知道如何在我的ASPX页面中进行异步检查,以便在某些方法执行时获取当前状态( 它们是否已完成等等… ) 。 我真正想要的是伪代码: while (methodExecuting) show(waitMessage); 如何在ASP.NET项目的WebForms中完成?

如何设置Selenium和ChromeDriver在无头模式下运行

我正在尝试使用xUnit,Selenium和Chrome Canary(无头模式)运行浏览器测试,但我一直收到此错误: OpenQA.Selenium.WebDriverException The HTTP request to the remote WebDriver server for URL http://localhost:58692/session timed out after 60 seconds. 这是我的代码: var chromeOptions = new ChromeOptions { BinaryLocation = @”C:\Users\\AppData\Local\Google\Chrome SxS\Application\chrome.exe”, DebuggerAddress = “127.0.0.1:9222” }; chromeOptions.AddArguments(“no-sandbox”, “headless”, “disable-gpu”); _driver = new ChromeDriver(chromeOptions) {Url = Url}; 我对C#很陌生,所以我不确定我是否做了一些公然错误的事情,或者我是否只是错过了一个设置。 谷歌上面的错误告诉我,我需要设置调试器地址并使用no-sandbox标志,但似乎都没有帮助。 使用这些版本: selenium 3.4 chromedriver 2.29 xunit 2.2