我在AppConfig中存储了一些属性,现在我想动态访问它们(例如在循环或函数中).
使用MySettings.NAME_OF_THAT_THING访问这些值没有问题,但如果名称是可变的,该怎么办?
我试过了:
String propertyValue = MySettings.GetType().GetProperty("NAME_OF_THAT_THING").ToString();
Run Code Online (Sandbox Code Playgroud)
但我唯一得到的是该物业的名称.我怎样才能做到这一点?
好的,情况如下:
我有一个客户端有2个设置:ConnectionState和ConnectionSollState,都是相同的可枚举(TypeConnectionState),它们存储客户端连接的实际状态和连接应该是的状态.在to的每个组合上,都会发生不同的事情,例如ConnectionState为"已连接"但ConnectionSollState为"已关闭" - >拆除客户端.所以我有4种可能性需要检查.现在每个客户端都可以处理无限数量的会话,并且每个会话都有一个状态(StreamState和StreamSollState),这些状态可以有6个可枚举的选项.
从现在开始,我正在制作20个切换条件,我的代码看起来非常混乱,我在编码时每5分钟做错一次.有没有更简单的方法来处理这样的情况?(if/else)会让事情变得更糟.
例:
private void RTSPWorker() {
try {
byte[] buffer = new byte[2048];
while (!mb_RTSPWorkerAbbort) {
// Call TransportWD
Thread.Sleep(100 * mi_ConnectionTimeOut);
// Check ConnectionSollState
switch(ConnectionSollState) {
case TypeConnectionState.Connected:
// ConnectionSollState = Connected, check ConnectionState
switch(ConnectionState) {
case TypeConnectionState.Connected:
// ConnectionState is connected, keep-alive!
if(GET_PARAMETER() == null) {
DESCRIBE();
}
// Check streams too
foreach (cRTSPStream oStream in mo_StreamDict.Values) {
// Check StreamSollState
switch(oStream.RTSPStreamSollState) {
case cRTSPStream.TypeRTSPStreamState.Play:
// SollState is PLAY, check State
switch(oStream.RTSPStreamState) {
case …Run Code Online (Sandbox Code Playgroud) c# if-statement coding-style case-statement switch-statement
可能重复:
在Windows上存储应用程序日志文件的位置
Windows似乎有几个不同的应用程序存储其日志的地方.Windows服务和一些应用程序使用Windows事件日志,其他应用程序使用C:\ ProgramData,另一个应用程序将它们存储到C:\ Users(本地/系统/公共/默认)\ AppData /(漫游/本地).
我在开发Windows服务时注意到这一点,默认(AppData/Roaming)环境变量指向C:\ Windows\System32\Users\system\AppData\Roaming或其他完全荒谬的位置,所以我想知道是否有任何表在那里存储日志的位置:用户应用程序/用户服务/系统服务和更一般:所有这些应用程序文件夹是什么(什么属于哪里?)
谢谢!
c# ×3
.net ×1
app-config ×1
coding-style ×1
environment ×1
events ×1
if-statement ×1
logging ×1
settings ×1
windows ×1