C#在任务中更新UI

我是C# Task和线程的新手。 我有一个如下代码: – public void UpdateSales(object sender, EventArgs args) { Task.Run(() => { // Some code Create Collection … // Some code with business logic .. // Below code is to update UI // is it safe to update UI like below saleDataGrid.Dispatcher.Invoke((Action) (() => { saleDataGrid.ItemsSource = currentCollection; saleDataGrid.Items.Refresh(); })); }); } 我不确定这段代码是否正确。 […]

清洁代码:对象应该具有公共属性吗?

我正在阅读“清洁代码”一书,并且正在努力解决这个问题。 在讨论对象和数据结构时,它指出以下内容: 对象隐藏抽象背后的数据,并公开对该数据进行操作的函数。 数据结构公开其数据并且没有有意义的function。 所以,我从中获得的是我不应该在我的对象上有任何公共属性,我应该只有对属性执行操作的方法。 如果我确实需要访问属性,它们应该在数据结构上,可以从我对象上的方法返回? 使用这种方法,似乎我需要为我的对象上的Height属性使用GetHeight()和SetHeight()方法,而不是仅使用属性的get和set 。 也许我并不完全理解建议的内容,但这是我对“ 对象隐藏数据 ”的理解。 如果你能帮助我理解这一点,我将非常感激! 提前致谢!

ASP.Net核心应用程序中LocalAppData的路径

我有一个ASP.Net核心应用程序,为了目前的目的,我必须使用LocalAppData。 通常我会编写Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) ,但遗憾的是它不能与ASP.Net Core一起使用。 任何人都可以帮我这个吗? UPDATE 感谢Adem Caglin,我找到了解决方案。 我使用的代码: Environment.GetEnvironmentVariable( RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? “LocalAppData” : “Home”);

从RTF文本中获取纯文本

我的数据库中有一个包含RTF格式文本的列。 我怎样才能使用C#获得它的纯文本? 感谢:D

如何为所有项目更改Visual Studio 2017默认语言版本?

如何在C#7.0上为所有项目设置语言版本? 项目/属性/构建/高级… /高级构建设置屏幕 默认参数来自哪里,我想更改默认值 PS:我不是指UI语言

C#代码生成器

有人可以推荐一个简单的c#代码生成器。 我只是用以下方法寻找一些东西: GenClass = CreateNewClass(AccessModifier,Name……) GenClass.Add(new Method(AccessModifier,RetType,Name….){code=@”…..”} GenClass.Add(new Property(AccessModifier,Type, Name….) ………..等 在创建所有类\方法和其他成员之后,我们称之为代码生成function(我们可以在其中指定一些参数) 有没有这样的开源代码生成器?

两个枚举之间的平等

我有两个具有完全相同的参考元素的枚举,并想知道为什么Equals不是真的。 作为一个侧面问题,下面的代码比较每个元素的作用,但必须有一个更优雅的方式 var other = (ActivityService) obj; if (!AllAccounts.Count().Equals(other.AllAccounts.Count())) return false; for (int i = 0; i < AllAccounts.Count(); i++) { if (!AllAccounts.ElementAt(i).Equals(other.AllAccounts.ElementAt(i))) { return false; } } return true;

强制HttpClient使用Content-Type:text / xml

这让我疯了,我在任何地方设置ContentType标头,似乎无法让它停止发送text / plain。 在Fiddler中查看数据时,请求始终请求: POST http:/domain.com HTTP / 1.1 Content-Type:text / plain; 字符集= utf-8的 using (var httpClient = new HttpClient()) { var request = new HttpRequestMessage(HttpMethod.Post, “http://domain.com”); request.Content = new StringContent(Serialize(obj), Encoding.UTF8, “text/xml”); request.Content.Headers.Clear(); request.Content.Headers.ContentType = new MediaTypeHeaderValue(“text/xml”); request.Headers.Clear(); request.Headers.Add(“Content-Type”,”text/xml”); var response = await httpClient.SendAsync(request); return await response.Content.ReadAsStringAsync(); }

使用Moqvalidation参考参数的值

我刚刚切换到Moq并遇到了问题。 我正在测试一个创建业务对象的新实例的方法,从用户输入值设置对象的属性,并调用方法(SaveCustomerContact)来保存新对象。 业务对象作为ref参数传递,因为它通过远程处理层。 我需要测试传递给SaveCustomerContact的对象是否按预期设置了所有属性,但由于它在控制器方法中被实例化为new,我似乎无法这样做。 public void AddContact() { var contact = new CustomerContact() { CustomerId = m_model.CustomerId }; contact.Name = m_model.CustomerContactName; contact.PhoneNumber = m_model.PhoneNumber; contact.FaxNumber = m_model.FaxNumber; contact.Email = m_model.Email; contact.ReceiveInvoiceFlag = m_model.ReceiveInvoiceFlag; contact.ReceiveStatementFlag = m_model.ReceiveStatementFlag; contact.ReceiveContractFlag = m_model.ReceiveContractFlag; contact.EmailFlag = m_model.EmailFlag; contact.FaxFlag = m_model.FaxFlag; contact.PostalMailFlag = m_model.PostalMailFlag; contact.CustomerLocationId = m_model.CustomerLocationId; RemotingHandler.SaveCustomerContact( ref contact ); […]

如何使用reflection来获取显式实现接口的属性?

更具体地说,如果我有: public class TempClass : TempInterface { int TempInterface.TempProperty { get; set; } int TempInterface.TempProperty2 { get; set; } public int TempProperty { get; set; } } public interface TempInterface { int TempProperty { get; set; } int TempProperty2 { get; set; } } 如何使用reflection来获取显式实现TempInterface的属性的所有propertyInfos? 谢谢。