草庐IT

c# - 在 C# 中确定操作系统和处理器类型

我想检查我使用的操作系统类型和处理器类型。这应该检查运行时。我尝试使用System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")和System.OperatingSystemosInfo2=System.Environment.OSVersion;Console.WriteLine(osInfo2.ToString());但这只是VS运行的环境。有人告诉我使用WMI来检查它,但我不知道如何做。有人可以帮我吗? 最佳答案 检索操作系统信息:varwmi=new

c# - 如何确定字符串是本地文件夹字符串还是网络字符串?

除了正则表达式,如何在c#中判断一个字符串是本地文件夹字符串还是网络字符串?例如:我有一个字符串,它可以是"c:\a"或"\\foldera\folderb" 最佳答案 我认为这个问题的完整答案是包括DriveInfo.DriveType属性的用法。publicstaticboolIsNetworkPath(stringpath){if(!path.StartsWith(@"/")&&!path.StartsWith(@"\")){stringrootPath=System.IO.Path.GetPathRoot(path);//g

c# - 确定堆上对象的对象分配发生的位置

是否有任何工具可以从正在运行的应用程序中获取堆转储,并根据对象在源代码中的创建位置确定/分组对象?无需更改源代码,最好是免费的。 最佳答案 例如,来自ANTS的.NETMemoryProfiler怎么样。也许是CLRProfiler。 关于c#-确定堆上对象的对象分配发生的位置,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6428299/

c# - 是否可以确定进程运行了多长时间

是否有可能在C#中获取正在运行的进程列表(不是服务进程,而是实际的应用程序)并获取应用程序启动时间的DateTime?或者一个TimeSpan甚至一个进程运行了多长时间的整数? 最佳答案 Process.GetProcesses将检索正在运行的进程列表。每个Process有一个StartTime属性Getsthetimethattheassociatedprocesswasstarted.简单地从DateTime.Now中减去它获取进程运行了多长时间。staticvoidMain(string[]args){varprocs=Pro

c# - 如何使用反射在泛型类型中动态确定属性属于基类还是子类?

我有以下两个类(模型),一个是基类,另一个是子类:publicclassBaseClass{publicstringBaseProperty{get;set;}}publicclassChildClass:BaseClass{publicstringChildProperty{get;set;}}在应用程序中,我使用泛型动态调用ChildClassListpropertyNames=newList();foreach(PropertyInfoinfointypeof(T).GetProperties()){propertyNames.Add(info.Name);}在这里,在prope

c# - 如何从 C# 中确定性地处理托管 C++/CLI 对象?

我在C++/CLI程序集中有一个托管对象。作为C++/CLI,它通过其“析构函数”实现一次性模式(是的,我知道它与标准C++析构函数不同)。在C++/CLI中,我将简单地删除对象。但是,我将此对象用作C#类中的成员变量。然后,在我的C#类中,当我完成使用它时,我想在C++/CLI对象上调用等效的Dispose()方法。因为它是(而且必须是)类的成员变量,所以使用using()block是不可能的。据我所知,除了C++/CLI之外,没有公开的方法可以直接、确定性地处理资源。我怎样才能做到这一点? 最佳答案 它在C++/CLI中不是那么

c# - 如何(优雅地)确定 C# winforms 应用程序中是否需要代理身份验证

我的用例是这样的,我想调出一个网络服务,如果我在需要身份验证的代理服务器后面,我只想使用默认凭据...WebRequest.DefaultWebProxy.Credentials=CredentialCache.DefaultCredentials;否则,我只会简单地进行调用,如果预先确定是否需要身份验证,而不是在我尝试进行调用后处理异常,那将是非常好的。想法? 最佳答案 那是在我第一次部署我的app之后我意识到有些用户在防火墙后面......开始测试它。而不是对“需要407身份验证”进行测试,我只是执行相同的Proxy设置,无论是

c# - 如何确定 Linq-To-Sql 对象中更改了哪些字段

我有一个linq-to-sql数据库,我想在其中记录对实体所做的一些更改。现在,我正在通过读取DataContext.GetChangeSet().Updates属性获取更新的实体,但这并没有为我提供来自已更改实体的字段。有没有办法知道更新的实体中哪些字段被修改了??谢谢 最佳答案 DataTable有一个方法GetModifiedMembers,它将返回一个成员列表,这些成员已针对指定的实体实例进行了更改。DataClasses1DataContextcontext;Class1instance=context.GetChange

c# - 如何确定我的应用程序是否处于事件状态(有焦点)

有没有办法判断我的应用程序是否处于事件状态,即它的任何窗口是否具有.IsActive=true?我正在编写Messenger应用程序,并希望它在处于非事件状态和收到新消息时在任务栏中闪烁。 最佳答案 使用P/Invoke和循环[System.Runtime.InteropServices.DllImport("user32.dll")]staticexternIntPtrGetForegroundWindow();privatestaticboolIsActive(Windowwnd){//workaroundforminimiza

c# - 确定整数列表中的第一个可用值

我得到了一个简单的整数列表。ListmyInts=newList();myInts.Add(0);myInts.Add(1);myInts.Add(4);myInts.Add(6);myInts.Add(24);我的目标是从列表中获取第一个未使用(可用)的值。(集合中尚未存在的第一个正值)在这种情况下,答案是2。这是我当前的代码:intGetFirstFreeInt(){for(inti=0;i有没有更好的方法?也许使用LINQ?你会怎么做?当然,为了简单起见,我在这里使用了整数,但我的问题可以适用于任何类型。 最佳答案 您基本上需