PathResolver.cs
1.07 KB
using Rcs.Domain.Entities;
using Rcs.Domain.Enums;
using Rcs.Domain.Models;
using Rcs.Domain.Services;
using Rcs.Shared.Utils;
namespace Rcs.Infrastructure.Services.ParameterResolvers
{
/// <summary>
/// 路径属性解析器 - 从Path相关对象获取属性值(预留)
/// @author zzy
/// </summary>
public class PathResolver : IParameterValueResolver
{
public ParameterSourceType SourceType => ParameterSourceType.Path;
public object? Resolve(ActionParameterDefinition definition, ParameterContext context)
{
// Path类型暂时从Extra字典中获取
if (context.Extra == null || string.IsNullOrEmpty(definition.ParameterSourcePath))
return definition.DefaultValue;
if (context.Extra.TryGetValue("Path", out var pathObj) && pathObj != null)
{
var value = PropertyPathResolver.GetValue(pathObj, definition.ParameterSourcePath);
return value ?? definition.DefaultValue;
}
return definition.DefaultValue;
}
}
}