草庐IT

c# - 每次运行应用程序时生成相同数字的随机数生成器

这个问题在这里已经有了答案:Randomnumbergeneratoronlygeneratingonerandomnumber(15个答案)关闭8年前。我知道这个问题已被多次提出,但这些解决方案都不适合我。首先,我在名为RandomNumGenerator(items)的方法中执行此操作ListrandNum=newList();foreach(variteminitems){randNum.Add(newRandom(1000).Next());}这个一直给我一样的号码,然后看了thisanswer之后我这样做了:Randomrnd=newRandom(1000);foreach(

c# - RoleEnvironment.GetConfigurationSettingValue 是否每次都从 cfg 文件中读取?

Azure角色设置非常有用,因为它允许您在IIS运行时即时更改值。但问题是,如果你有很多用户,并且如果它每次都从文件中读取配置值,那么最好不要将它放在静态变量中使用它。下一个问题,如果你把它放在一个静态变量中,那么你每次更改它时都必须重新设置IIS。我做了一些研究,在stackoverflow上发现了类似的问题,它告诉我只有第一次读取文件中的conf,然后将其存储在缓存中。但是回答的那个问题是关于ConfigurationManager的,我的是关于Azure的RoleManager。这是在azure上获取当前设置的行:RoleEnvironment.GetConfigurationS

c# - 为什么 ASP.NET 编译器会在每次构建时重建所有二进制文件?

当我使用aspnet_compiler重新编译我的项目(asp.net、c#)时,即使没有进行任何代码更改,重建的二进制文件也会发生变化(与之前的构建相比)。据我所知,这是由于构建每次构建时都会生成一个新的模块版本ID(guid)(以区分构建),另一个类似的问题讨论了这个问题:Canispecifythemoduleversionid(MVID)whenbuildinga.netassembly?上面的链接问题似乎表明没有办法重建项目并使二进制文件与先前构建的相同未更改代码相匹配。好的,很好,我明白了——但为什么所有的二进制文件都被重建了?我认为,根据文档(http://msdn.mi

c# - 使用 COM 端口 - 每次使用后关闭,还是始终打开?

直到现在我需要发送数据时打开,然后立即关闭。我收到随机的“访问端口”错误(尽管我总是在使用后关闭端口),所以我在想也许让它一直开着。假设我需要每隔一两分钟在某些COM端口发送数据,正确的使用方法是什么?谢谢.. 最佳答案 频繁调用SerialPort.Close()是错误的。让另一个应用程序从您那里窃取端口并不是非常可取的。但更有问题的是,您遇到的问题是Close()不等待由SerialPort启动的工作线程退出。该工作线程引发DataReceived、PinChanged和ErrorReceived事件。它需要“一段时间”才能退出

c# - 在C#应用程序中,DB Connection应该创建一次,还是每次执行SQL语句时创建一次?

在C#应用程序中,OleDBConnection应该创建一次,还是每次执行SQL语句时创建一次?我正在查看其他人编写的C#代码。每个SQL语句之前都会创建一个OleDbConnection对象,该对象的连接字符串指向MDB数据库。每次都创建一个OleDbConnection对象是否合适,或者该对象是否应该在应用程序启动时创建并从那时起使用。 最佳答案 根据BestPracticesforUsingADO.NET:Highperformanceapplicationskeepconnectionstothedatasourceinus

c# - 每次我下载文件时,WebClient 都会打开一个新连接,并且所有连接都保持建立状态

我在寻找如何关闭WebClient建立的连接时遇到了问题。我创建了一个新的WebClient对象,然后多次调用DownloadFile方法,但是,它总是为每次调用创建一个新连接,并且这些连接保持打开状态(已建立状态),我可以在TCPView中看到所有已建立的连接。如果当我处理Webclient时,它们保持已建立状态,那更让我烦恼的是什么......?如何在下载完成后强制关闭连接?我已经尝试派生WebClient并手动将keepalive设置为false,我的应用程序配置也允许足够的连接。 最佳答案 简短回答:您不需要手动关闭连接。它

c# - 使用 rhino mocks 为每次调用返回不同的实例

我有这个代码:Expect.Call(factory.CreateOrder()).Return(newOrder()).Repeat.Times(4);当它被调用四次时,每次都返回相同的实例。我想要返回不同的实例。我希望能够做类似的事情:Expect.Call(factory.CreateOrder()).Return(()=>newOrder()).Repeat.Times(4);这可以通过某种方式完成吗? 最佳答案 而不是使用.Return(newOrder());尝试使用.Do((Func)delegate(){return

c# - C# 中的 `params` 是否总是会导致在每次调用时分配一个新数组?

C#/.NET通过按引用传递Array类型来实现可变函数参数(与C/C++不同,C/C++只是将所有值直接放在堆栈上,无论好坏).在C#世界中,这有一个很好的优势,即允许您使用“原始”参数或可重用数组实例调用相同的函数:CultureInfoc=CultureInfo.InvariantCulture;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,3);Int32third=3;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,third);Object[]values=newObjec

c# - 我是否需要在每次 'foreach' 迭代时释放 COM 对象?

这是(潜在的)问题:我创建了一个COM对象,然后使用“foreach”循环访问它返回的集合中的每个元素。我是否需要释放我在集合中迭代的每个单独元素?(请参阅下面的代码。)如果是这样,我想不出一种方法来有效地从“finally”语句中释放它,以防万一在操作该项目时出现错误。有什么建议吗?privatestaticvoiddoStuff(){ComObjectClassmanager=null;try{manager=newComObjectClass();foreach(ComObjectiteminmanager.GetCollectionOfItems()){Log.Debug(it

c# - 每次使用 Moq 调用方法时,如何使 Mock 返回一个新列表

我正在使用MOQ模拟具有预期返回列表的方法调用。我的方法返回一个列表,但我希望模拟在每次调用该方法时创建一个新列表。到目前为止我做了什么:Listexpected=newList{newCorrelation(){Code="SelfError1"},newCorrelation(){Code="SelfError2"}};MockselfMock=newMock();selfMock.Setup(f=>f.Validate()).Returns(expected);我想要实现的是让模拟在每次调用方法get时返回一个新列表。我试过这个但没用:selfMock.Setup(f=>f.Va