Skip to content

Commit 7f3621e

Browse files
committed
refactor(OptionsBuilder): 移除RequiredOptionAttribute并简化必需选项检查逻辑
删除不再需要的RequiredOptionAttribute类,并简化OptionsBuilder中必需选项的检查逻辑。现在仅通过OptionAttribute的Required标志来校验必需选项,减少重复代码和维护成本。
1 parent c406d3c commit 7f3621e

2 files changed

Lines changed: 7 additions & 68 deletions

File tree

GameFrameX.Foundation.Options/Attributes/RequiredOptionAttribute.cs

Lines changed: 0 additions & 41 deletions
This file was deleted.

GameFrameX.Foundation.Options/OptionsBuilder.cs

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -291,41 +291,21 @@ private void ValidateRequiredOptions(T target)
291291
bool isRequired = false;
292292
string optionName = property.Name.ToLowerInvariant().Replace("_", "-");
293293

294-
// 检查是否有必需选项特性
295-
var requiredOptionAttrs = property.GetCustomAttributes<RequiredOptionAttribute>().ToList();
296-
foreach (var requiredOptionAttr in requiredOptionAttrs)
294+
// 仅基于 OptionAttribute 的 Required 标志进行校验
295+
var optionAttrs = property.GetCustomAttributes<OptionAttribute>().ToList();
296+
foreach (var optionAttr in optionAttrs)
297297
{
298-
if (requiredOptionAttr.Required)
298+
if (optionAttr.Required)
299299
{
300300
isRequired = true;
301-
if (!string.IsNullOrEmpty(requiredOptionAttr.LongName))
301+
if (!string.IsNullOrEmpty(optionAttr.LongName))
302302
{
303-
optionName = requiredOptionAttr.LongName;
303+
optionName = optionAttr.LongName;
304304
}
305-
306305
break;
307306
}
308307
}
309308

310-
// 检查选项特性中的必需标志
311-
if (!isRequired)
312-
{
313-
var optionAttrs = property.GetCustomAttributes<OptionAttribute>().ToList();
314-
foreach (var optionAttr in optionAttrs)
315-
{
316-
if (optionAttr.Required && !(optionAttr is RequiredOptionAttribute))
317-
{
318-
isRequired = true;
319-
if (!string.IsNullOrEmpty(optionAttr.LongName))
320-
{
321-
optionName = optionAttr.LongName;
322-
}
323-
324-
break;
325-
}
326-
}
327-
}
328-
329309
// 如果是必需的,检查值
330310
if (isRequired)
331311
{
@@ -862,4 +842,4 @@ private string NormalizePropertyName(string key)
862842

863843
return key;
864844
}
865-
}
845+
}

0 commit comments

Comments
 (0)