Tag: c#

C#File.Copy抛出exception“不支持给定路径的格式”

string source = @”C:\Users\damanja\Desktop\Projects\RecStudentManagement\RecStudentManagement.Web\Reports\Templates\ContactInformationReport.xlsx”; string dest = @”C:\Users\damanja\Desktop\Projects\RecStudentManagement\RecStudentManagement.Web\Reports\Ran\damanja2012-12-17T10:14:02.0394885-06:00.xlsx”; File.Copy(source, dest, true); 产生此exception: The given path’s format is not supported. 堆栈跟踪: at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath) at System.IO.File.InternalCopy(String sourceFileName, […]

按顺序拆分Parallel.Foreach循环上的负载

我在列表中有一百万个要处理的元素。 将它们粗略地放入Parallel.ForEach只会使CPU饱和。 相反,我将元素主列表拆分为多个部分,并将子列表放入并行循环中。 List MasterList = new List(); Populate(MasterList); // puts a Million elements into list; //Split Master List into 100 Lists of 10.0000 elements each List<List> ListOfSubLists = Split(MasterList,100); foreach (List EL in ListOfSubLists ) { Parallel.ForEach(EL, E => { // Do Stuff } //wait for all parallel iterations to end before continuing } […]

将嵌套的Foreach转换为Linq

我试图使用LINQ重写以下内容 foreach (WMCommon.Services.StakeOut.assembly ass in assemblies) { foreach (var agg in aggregate) { if ( agg.catagory.unitActn == ass.unitActn && agg.catagory.unitCode == ass.unitCode && agg.catagory.unitLength == ass.unitLength ) { ass.quantity = agg.qty; } } } 这是我得到的: assemblies.Where( a => a.quantity = ( aggregate.Where( p => p.catagory.unitActn == a.unitActn && p.catagory.unitCode == a.unitCode && p.catagory.unitLength == a.unitLength).Select(s=>s.qty))); […]

静态HttpClient仍然创建TIME_WAIT tcp端口

我正在使用.NET Framework中的HttpClient(4.5.1 +,4.6.1和4.7.2)遇到一些有趣的行为。 我已经提议在工作中的一些项目中进行一些更改,以便在每次使用时不处理HttpClient,因为TCP端口使用率很高的已知问题,请参阅https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong / 。 我已经调查了这些更改,以检查事情是否按预期工作,并发现我们仍然遇到与以前相同的TIME_WAIT端口。 为了确认我提出的更改是正确的,我已经向应用程序添加了一些额外的跟踪,以确认我在整个应用程序中使用了相同的HttpClient实例。 我已经使用过简单的测试应用程序(取自上面链接的aspnetmonsters网站。 using System; using System.Net.Http; namespace ConsoleApplication { public class Program { private static HttpClientHandler { UseDefaultCredentials = true }; private static HttpClient Client = new HttpClient(handler); public static async Task Main(string[] args) { Console.WriteLine(“Starting connections”); for(int i = 0; i<10; i++) { var result = await […]

尝试发布SQL CLR数据库的日期时间类型不匹配

我试图站起来将一些.net函数发布到SQL Server数据库的旧解决方案。 但是,发布到新数据库的尝试在操作日期的函数上失败。 失败的function是: [SqlFunction(TableDefinition=”localtime datetime2″, IsDeterministic=true, IsPrecise=true, DataAccess=DataAccessKind.None, SystemDataAccess=SystemDataAccessKind.None)] public static DateTime ConvertFromUTC(DateTime utctime, string timezoneid) { if (utctime.Kind == DateTimeKind.Unspecified) utctime = DateTime.SpecifyKind( utctime, DateTimeKind.Utc ); utctime = utctime.ToUniversalTime(); return TimeZoneInfo.ConvertTimeBySystemTimeZoneId( utctime, timezoneid ); } 我尝试发布时收到的错误消息是: 创建[dbo]。[ConvertFromUTC] … (268,1):SQL72014:.Net SqlClient数据提供程序: 消息6551,级别16,状态2,过程ConvertFromUTC,第1行 “ConvertFromUTC”的CREATE FUNCTION失败,因为返回值的T-SQL和CLR类型不匹配。 (268,0):SQL72045:脚本执行错误 从.net生成的SQL,试图添加该函数: CREATE FUNCTION [dbo].[ConvertFromUTC] (@utctime DATETIME, @timezoneid NVARCHAR (MAX)) […]

如何通过.NETvalidationxml代码文件? +如果我使用XML序列化,我该怎么做?

我希望用户能够将数据导出为XML文件。 当然,我希望他们以后能够导入相同的XML文件,但是他们总是可以更改它,或者它可能是不同的XML文件。 所以我想validationXML文件以检查它是否采用我期望的格式。 所以我想我需要像模式一样来检查它必须通过代码。 所以,如果我期待 我不希望其他格式在文件中,而不是我期望的格式。 另外我如何validation字段? 就像说我要求标签之间必须有一些文字。 如果为空,则文件无效。 那怎么能这样呢? 编辑 我决定使用XML序列化,所以我知道如果格式错误并且忽略不起作用的东西,它将通过exception。 但是我不确定我是否应该通过它和C#来validation每个记录,或者我应该尝试制作一个xml架构来完成它。 如果我想通过xml序列化的xml架构来实现它将如何工作? 就像我首先做的事情,就像我在回复中看到的那样然后去序列化它? 或者我该怎么做?

DbDataReader,NextResult()并填充多个表

这个问题是我以前的问题的延续。 没有太多细节,我正在用2个相关的1对多表填充数据集。 所以,我现在的问题是 – 为什么这段代码运作良好 public DataAgencyR_DataSet SelectOne(int id) { DataAgencyR_DataSet result = new DataAgencyR_DataSet(); using (DbCommand command = Connection.CreateCommand()) { try { command.CommandText = SqlStrings.SelectDataAgencyR_SelectOne(); var param = ParametersBuilder.CreateByKey(command, “ID_DeclAgenc”, id, “ID_DeclAgenc”); command.Parameters.Add(param); Connection.Open(); using (DbDataReader reader = command.ExecuteReader()) { while (reader.Read()) { System.Diagnostics.Trace.WriteLine(String.Format(“{0}-{1}”, reader[0], reader[1])); } System.Diagnostics.Trace.WriteLine(“————-“); reader.NextResult(); while (reader.Read()) { System.Diagnostics.Trace.WriteLine(String.Format(“{0}-{1}”, reader[0], […]

WPF ListView键盘导航问题

我有这样的列表视图 列表显示: ——— 芒果 橙子 葡萄 葡萄 葡萄 苹果 草莓 每当我使用downarrow进行导航时,BlueHighlight会在第一个Grapes处停顿,一个虚线的矩形从第二个葡萄开始,然后停留在第三个葡萄,然后BlueHighlight从Apple恢复。 这似乎很奇怪,当导航向上时,它变得更加奇怪。 它从Apple跳到Orange或芒果。 这是由于虚拟化吗? 似乎只有重复数据(葡萄)才会产生问题。 任何帮助?

可靠地在C#中重现用PHP实现的传统密码散列方法

我们正在将在Linux上运行的PHP应用程序迁移到我们在C#中实现并在Windows上运行的新单点登录(SSO)基础架构。 作为迁移过程的一部分,我们需要我们的C#SSO基础架构能够以与PHP应用程序完全相同的方式散列密码。 虽然PHP应用程序使用了一个相当合理的密码散列算法,但是除了密码和salt之外, 不幸的是,得到散列的字符串还包含salt值的余弦值(解释为整数) ……这是一个相当不寻常的决定。 midly。 不出所料,事实certificate,在PHP和C#中计算大整数的余弦导致结果略有不同。 这意味着我们可能无法在新的SSO基础架构中可靠地重新实现传统密码散列算法。 我们考虑的一个解决方案是在AWS Lambda中运行PHP密码散列函数,并从我们的SSO基础架构中查询Lambda。 你能想到其他选择吗?

使用LINQ从多维数组中选择未知项

为了我自己的个人娱乐,我写的是我希望以后能够成为游戏的基础。 目前,我正在制作游戏“棋盘”。 请考虑以下事项: class Board { private Cube[,,] gameBoard; public Cube[, ,] GameBoard { get; } private Random rnd; private Person person; public Person _Person { get; } //default constructor public Board() { person = new Person(this); rnd = new Random(); gameBoard = new Cube[10, 10, 10]; gameBoard.Initialize(); int xAxis = rnd.Next(11); int yAxis = […]