[英]print all System.Environment information using System.Reflection
我們有一個小任務要在控制台窗口中使用reflection
打印Environment
類的所有變量,但如何做到這一點我什至不知道。 如果我在這里寫錯了,我很抱歉,我是C#
新手。
當然我可以使用這種代碼,但這不是我需要的。
string machineName = System.Environment.MachineName;
Console.WriteLine(machineName);
我在谷歌上搜索了很多,這就是我找到的,但我認為這不是我需要的。 我什至不知道我需要什么。
System.Reflection.Assembly info = typeof(System.Int32).Assembly;
System.Console.WriteLine(info);
有什么建議,線索嗎?
你不需要在這里反思
foreach(DictionaryEntry e in System.Environment.GetEnvironmentVariables())
{
Console.WriteLine(e.Key + ":" + e.Value);
}
var compName = System.Environment.GetEnvironmentVariables()["COMPUTERNAME"];
使用GetProperties
方法獲取Environment
的所有公共和靜態屬性,然后顯示每個屬性的名稱和值:
var properties = typeof(Environment)
.GetProperties(BindingFlags.Public | BindingFlags.Static);
foreach(var prop in properties)
Console.WriteLine("{0} : {1}", prop.Name, prop.GetValue(null));
雖然這是一個老問題,但使用 Linq,根據接受的答案有一個更簡潔的可能答案:
IEnumerable<string> environmentVariables = Environment.GetEnvironmentVariables()
.Cast<DictionaryEntry>()
.Select(de => $"{de.Key}={de.Value}");
Console.WriteLine("Environment Variables: " + string.Join(Environment.NewLine, environmentVariables));
或者,相同代碼的較短版本:
Console.WriteLine("Environment Variables: " + string.Join(Environment.NewLine,
Environment.GetEnvironmentVariables()
.Cast<DictionaryEntry>()
.Select(de => $"{de.Key}={de.Value}")));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.