Tag: c#

不同forms之间的沟通

在C#中,使用winforms,使表单相互通信的最佳方法是什么? 从另一个发送数据,消息,字符串等等? 代表们? 想法?

如何在后台加载图像?

我正在尝试在后台加载图像,然后更新UI。 我整天都在玩这个,我不知道我错过了什么。 我一直收到以下错误: “调用线程无法访问此对象,因为不同的线程拥有它。” 我已经在示例后跟随示例,但我似乎无法找到答案。 我还在另一个BeginInvoke中包含了触摸UI的代码。 更新3:故事的寓意。 ImageSource对于访问不是线程安全的。 更新2:这必须是一个简单的解决方案:)。 我尝试了克隆,但这并没有带来成功,但我确实得到了一个不同的错误:“调用目标引发了exception。” 更新1:我尝试了BackgroundWorker,但我仍然得到相同的错误,但它发生在brush.ImageSource.Height上。 我是否正确地通知了用户界面? 有什么建议? 这是我的XAML: 以下是一些背后的代码: namespace Slideshow { public class Show { public Show() { BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); bw.RunWorkerAsync(); } void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { BitmapSource bitmap = e.Result as BitmapSource; if (bitmap != […]

无法首先使用Npgsql和Entity Framework代码在PostreSQL中创建数据库

我正在尝试设置我的应用程序以使用Entity Framework和PostgreSQL,但我遇到了一个问题。 我已经通过nuget添加了Npqsql,并将以下提供程序工厂添加到web.config : 使用连接字符串: 它似乎很好地连接到数据库,但当我尝试在数据库上执行任何类型的操作时,我得到以下exception: FATAL: 3D000: database “withoomph” does not exist 当db设置如下时,我正在正确设置数据库intitializer: static MyDB() { Database.SetInitializer(new CreateDatabaseIfNotExists()); } 所以当我尝试用我的DbContext做任何事情时,它应该只是简单地创建db? 我不明白,整个早上都拔我的头发!

使用自定义DataAnnotationsModelValidatorProvider进行服务器端validation

我已经设置了一个自定义提供程序,允许从数据存储而不是静态代码中设置validation属性。 在我的.NET MVC 4项目中使用客户端validation很好用,但我无法让服务器端validation工作。 CustomModelValidatorProvider .cs: public class CustomModelValidatorProvider:DataAnnotationsModelValidatorProvider { protected override IEnumerable GetValidators(ModelMetadata元数据,ControllerContext上下文,IEnumerable属性) { //在这里设置数据存储区的属性 return base.GetValidators(元数据,上下文,属性); } } 在我的Global.asax.cs中,我有: protected void Application_Start() { ModelValidatorProviders.Providers.Clear(); ModelValidatorProviders.Providers.Add(new CustomModelValidatorProvider()); } 在Web API方法中,我有: var validationResultList = new List(); bool valid = Validator.TryValidateObject(myModelObject,new ValidationContext(myModelObject,null,null),validationResultList,true); 在这里,有效总是如此。 即使Jquery客户端validation显示错误。 在服务器端,我的自定义提供程序不用于应用数据注释。 当我在GetValidators()中设置断点时,在创建View时调用它并正确显示客户端validation器,但是当模型绑定到控制器时不会再次调用它。 我错过了一步吗? 任何帮助是极大的赞赏! UPDATE 当对象发布到Controller时,自定义validation器可以正常工作,但在发布到ApiController时不会被触发。

在Xamarin Forms C#中发送HTTP Post请求

在我开始之前,我想说我已经用谷歌搜索了这个问题的解决方案但要么不理解它们(我是新手)或者它们不起作用。 我想要做的是将JSON数据发送到localhost:8000上的REST API,格式如下: { “username” : “myusername”, “password” : “mypass” } 然后,我期望一个包含字符串标记的响应,如下所示, { “token” : “rgh2ghgdsfds” } 如何发送json数据然后从响应中解析令牌? 我已经看到了这样做的同步方法,但由于某种原因,它们不起作用(或者仅仅因为我不知道它在哪个命名空间)。 如果您采用异步方式执行此操作,请告诉我它是如何工作的? 提前致谢。

C#重叠PictureBox的透明度问题

我在一个面板PictureBox重叠显示,因为每个PictureBox都用作一个图层。 第一次定义PictureBox并将其添加到面板时,它的背景颜色是透明的,并且它的图像是空的。 问题是,无法看到底层,透明图像显示面板的地面。 例外的是可以看到底部PictureBox的图像。 我已尝试使用其他控件,如label。 问题无法解决:( 谢谢。

解析XPath表达式

我正在尝试为XPath创建一个’AET’(抽象表达式树)(因为我正在编写一个WYSIWYG XSL编辑器)。 在过去的三到四个小时里,我一直用XPath BNF撞墙。 我想到了另一个解决方案。 我以为我可以编写一个实现IXPathNavigable的类,它在调用CreateNavigator时返回我自己的XPathNavigator。 这个XPathNavigator总是会在任何方法调用上成功,并会跟踪这些调用 – 例如我们移动到客户节点,然后移动到客户节点。 然后我可以使用这些信息(希望)来创建’AET’(因此我们现在可以在对象模型中拥有客户/客户)。 唯一的问题是:我如何通过XPathExpression运行IXPathNavigable? 我知道这太懒了。 但是有没有其他人经历过努力并编写了一个XPath表达式解析器? 我还没有POC我可能的解决方案,因为我无法测试它(因为我不能对IXPathNavigable运行XPathExpression),所以我甚至不知道我的解决方案是否会工作。

C#备份和恢复剪贴板

我有一个使用剪贴板的程序,但我希望在完成后将剪贴板恢复到以前的状态。 这是我的代码: IDataObject temp = Clipboard.GetDataObject(); //Some stuff that change Cliboard here Clipboard.SetText(“Hello”); //Some stuff that change Cliboard here Clipboard.SetDataObject(temp); 但是,如果我复制一个文本并运行此代码,我在记事本上什么也得不到。 注意:我不能使用Clipboard.Contains,因为我想保留剪贴板EXACLY之前的状态,即使用户复制了一个文件。

使用Azure Active Directory – 一个应用程序在本地登录和发布时

我正在使用Azure Active Directory身份validation构建MVC应用程序。 当我在本地开发时,我希望能够登录进行测试/开发。 应用程序URL就像http://localhost:43400 。 这也在Sign-On Url和Reply Url中的AD应用程序中编码。 当我将相同的应用程序部署到服务器时,应用程序URL已更改 – 变为类似myappname.azurewebsites.net ,我无法使用相同的AD应用程序登录。 我能管理的最好的办法是通过登录过程,然后AD将我重定向回localhost:43400 ,这是错误的。 Startup.Auth.cs中有PostLogoutRedirectUri属性,我提供给应用程序,但它没有任何区别。 有没有使用相同Azure AD的本地应用程序和已部署应用程序的方法? 我可以使用不同的URL和密钥执行2个AD Applica,并在部署时重写web.config的值。 但这听起来不是最好的解决方案。 还有什么我能做的吗? UPD 以下是我在Startup.Auth.cs引用的内容: app.UseOpenIdConnectAuthentication( new OpenIdConnectAuthenticationOptions { ClientId = clientId, Authority = Authority, PostLogoutRedirectUri = postLogoutRedirectUri, // <– this is coming from web.config, different in dev and prod Notifications = new OpenIdConnectAuthenticationNotifications() { ….. […]

如何从一个客户端使用多个WCF服务

我还在学习整个WCF的事情,所以请在这里忍受我。 我所拥有的是使用C#和VS 2008创建的两个自托管服务: 服务#1添加两个数字并返回结果。 服务#2返回数字的平方。 我希望客户能够向服务1发送两个号码,得到总和,然后将总和发送到服务2并获得正方形。 我为这两个服务都有两个生成的代理,我可以在它们上使用Intellisense,因此该部分可以正常工作。 现在我如何配置我的app.config文件,以便我可以与这两个服务进行通信? 现在,每当我尝试这样做时,我都会得到一个例外。 [如果我一次只在app文件中有一个配置,客户端工作正常,并尝试只调用该服务器。] 我想这是一个非常无趣的问题,答案可能是“以_____方式构建配置文件”,但Google似乎没有示例/指南。 有人知道怎么做吗? 注意: 从一个客户端客户端使用多个WCF服务虽然听起来像重复不是我想要的。 编辑:感谢marc_s,我得到了它的工作 由于两个服务都运行在不同的应用程序中,我不需要拆分服务器配置文件,但这是我对客户端配置文件所做的:首先使用SvrUtil.exe自动生成配置文件,然后以这种方式合并它们: … … … …