使用临时文件流进行处理

假设我想定义一个使用Path.GetTempFileName()方法创建临时文件的TempFileStream类。 当不再需要TempFileStream的对象时,必须删除临时文件,例如关闭或处置: class TempFileStream: FileStream { string m_TempFileName = Path.GetTempFileName(); public TempFileStream(FileMode fileMode): base(m_TempFileName,fileMode) {} /// … public ovverride Dispose(bool disposing) { /// ??? } } 我该如何简单安全地实现这一点?

无法从类库中读取App.config值

这可能是一个简单的问题,但我正在努力解决。 我的Web应用程序中包含以下值的Web.config 。 我的类库(Say Lib)中有以下值的App.config 。 类库(Lib)是可插件的组件,我在Web应用程序中添加了类库(Lib)引用。 我的类库(Lib)中有以下代码。 当我在我的Web应用程序中为GetAppSettings创建实例时,我可以看到以下响应。 namespace Lib { public class GetAppSettings { public GetAppSettings() { var FirstName = ConfigurationManager.AppSettings[“FirstName”]; // O/P : Prasad var MiddleName = ConfigurationManager.AppSettings[“LastName”]; // O/P : Kanaparthi var FullName = ConfigurationManager.AppSettings[“FullName”]; // O/P : null } } } 问题是如何从App.config读取FullName ,这是类库(Lib)。 注意 :由于我的Lib是可插拔组件,因此消费者可以更改自己的FullName 。 我无法将值与App.config Web.confing合并。

ClrMd在创建运行时抛出exception

我正在使用CLR内存诊断库来获取正在运行的进程中所有线程的堆栈跟踪: var result = new Dictionary(); var pid = Process.GetCurrentProcess().Id; using (var dataTarget = DataTarget.AttachToProcess(pid, 5000, AttachFlag.Passive)) { string dacLocation = dataTarget.ClrVersions[0].TryGetDacLocation(); var runtime = dataTarget.CreateRuntime(dacLocation); //throws exception foreach (var t in runtime.Threads) { result.Add( t.ManagedThreadId, t.StackTrace.Select(f => { if (f.Method != null) { return f.Method.Type.Name + “.” + f.Method.Name; } return null; }).ToArray() ); […]

使用Selenium突出显示文本

我有一个上下文相关菜单,需要高亮显示文本才能使其正常工作。 但是,我在使用Selenium选择文本时遇到问题。 我首先找到我正在寻找的WebElement,然后尝试使用不同的鼠标事件与它进行交互。 当我试图选择部分文本时,除了将标记放在字符串的末尾之外,它似乎没有做任何其他事情。 这是我的文本框的样子: 这就是我需要它看起来的样子,换句话说,我需要Selenium选择的东西(只是为了说明的目的手动完成它: 这与我在代码中尝试做的一致: public static async Task HighlightElementByCssSelector(this RemoteWebDriver @this, string cssSelector, TimeSpan? timeout = null, TimeSpan? interval = null) { var element = await @this.FindElementByCssSelectorAsync(“.testmarker-registryentryedit .testmarker-title-field”); Actions action = new Actions(@this).MoveToElement(element).ClickAndHold(element).MoveByOffset(10,0).Release(); action.Build().Perform(); } 在这种情况下,@ this表示驱动程序,而FindElementByCssSelectorAsync是“包装器框架”的一部分。 我尝试过不同的MoveToElement,DragAndDrop,ClickAndHold等组合,但我无法让它工作。 关于这里可能有什么问题的任何指示?

WPF附加文本阻止UI线程,但WinForms没有?

我最近将我的应用程序从WinForms转换为WPF,我对大多数新function感到满意。 然而,我遇到了一个重要的绊脚石。 当我不断地将文本附加到我的文本框时,UI线程变得如此封闭,以至于我无法做任何事情,只是看它附加文本! 我需要能够在我的选项卡控件,单击按钮等等中切换选项卡。奇怪的是,我在WinForms的UI线程中绝对没有减速! 所以,这里有一个关于我的应用程序的背景:它将其他进程作为“动作队列”的一部分运行,并将这些进程的stdout和stderr吐出到两个单独的文本框中,以及日志文本框(这些是受影响的文本框)。 在低输出进程中,没有减速,但是当我使用SVN checkout和文件复制等进程时,我会立即获得大量文本输出,它只能附加文本。 这是我的打印代码: public void PrintOutput(String s) { String text = s + Environment.NewLine; Window.Dispatcher.Invoke(new StringArgDelegate(Window.PrintOutput), text); Debug.Log(“d ” + text); } public void PrintLog(String s) { ClearLogButtonEnabled = true; String text = s + Environment.NewLine; Window.Dispatcher.Invoke(new StringArgDelegate(Window.PrintLog), text); } 和匹配的代码隐藏: public void PrintOutput(String s) { outputTextBox.AppendText(s); outputTextBox.ScrollToEnd(); if (!clearOutputButton.IsEnabled) […]

加载要在WrapPanel中显示的大量图像

我正在使用Entity Framework Code First 我有这样的电影 : public class Movie { public byte[] Thumbnail { get; set; } public int MovieId { get; set; } } 电影的集合是这样的: public class NorthwindContext : DbContext { public DbSet Movies { get; set; } } 我有一个像这样的MovieViewModel : public class MovieViewModel { private readonly Movie _movie; public MovieViewModel(Movie movie) { _movieModel […]

如何将JSON响应映射到自定义类对象

我使用unirest.io在C#中调用API。 我得到了JSON响应(作为response.Body )。 { “persons”: [{ “id”: “a010”, “name”: “Joe”, “subjects”: [ “Math”, “English” ] }, { “id”: “b020”, “name”: “Jill”, “subjects”: [ “Science”, “Arts” ] }] } 我尝试将此映射到我的自定义类对象,如下所示。 HttpRequest request = Unirest.get(API_V1_URL).header(“accept”, “application/json”); HttpResponse response = request.asString(); var serializer = new JavaScriptSerializer(); persons = serializer.Deserialize(response.Body); 但它总是通过设置persons.infos = NULL来传递; 我的自定义课程 public class Persons { public […]

具有列表对象的类的GetHashCode

我有这样一堂课: public class Cycle { public List Edges { get; private set; } public override bool Equals(object obj) { Cycle cycle = (Cycle)obj; var list1 = cycle.Edges; var list2 = Edges; var same = list1.Except(list2).Count() == 0 && list2.Except(list1).Count() == 0; return same; } public override int GetHashCode() { // return Edges.GetHashCode(); } } 如您所见,如果两个Edge列表相同,那么我认为Cycles是相同的。 […]

Selenium – Visual Studios- C# – 所有(chrome,firefox和Internet Explorer)webdrivers无法启动驱动程序服务

我正在尝试设置Selenium进行测试,我的网络驱动程序似乎都没有工作。 我试过在项目文件夹中移动它们,我可以让Visual Studios找到它们的唯一方法是使用@“path”语句。 真正的问题是……一旦Visual Studio找到webdriver,操作就会超时,我得到以下exception: WebDriver.dll中出现未处理的“OpenQA.Selenium.WebDriverException”类型的exception附加信息:无法在http:// localhost:(每次更改的随机端口号)上启动驱动程序服务 我已经尝试重新启动计算机并让系统管理员检查防火墙和恶意软件阻止程序日志,但似乎都没有帮助(或者他们不知道正确的事情要查找)。 我认为这是一件非常简单的事情,我只是错过了……任何帮助都会非常感激。 这是我的代码的副本: using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.Support.UI; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.IE; namespace SeleniumWork { class Program { static void Main(string[] args) { IWebDriver driver = new InternetExplorerDriver(@”C:\blahblahpathstring”); driver.Navigate().GoToUrl(“http://www.google.com/”); IWebElement query = driver.FindElement(By.Name(“q”)); query.SendKeys(“Cheese”); query.Submit(); var wait […]

ASP MVC C#:是否可以将动态值传递给属性?

好吧,我是C#的新手,我正在尝试使用ASP MVC2创建一个小网站。 我想创建自己的授权属性。 但如果可能,我需要传递一些值。 例如: [CustomAuthorize(GroupID = Method Parameter?] public ActionResult DoSomething(int GroupID) { return View(“”); } 我想授权访问页面。 但它取决于传递给控制器​​的值。 因此授权取决于groupID。 这有可能以任何方式实现这一目标吗? 提前致谢。