我想在C#中为webapi创建一个帮助页面。我正在使用GetApiExplorer
和ParameterDescriptor.ParameterType.GetProperties()
。
一切都很好,但输入是一个复杂类型的列表。然后我得到的输出是列表而不是复杂类型。如何获取web api列表输入的复杂类型。
foreach (var subProperty in parameter.ParameterDescriptor.ParameterType.GetProperties())
{
APIEndPointParameter _APIEndPointSubParameter = new APIEndPointParameter(subProperty.Name, "", "", false, subProperty.PropertyType.ToString(), null);
_APIEndPointParameter.SubParameters.Add(_APIEndPointSubParameter);
}
答案 0 :(得分:0)
我得到了解决方案。 我得到了列表对象的类型,然后创建了实例。然后使用objInstance.GetType()。GetProperties()来获取类的属性。
var properties = parameter.ParameterDescriptor.ParameterType.GetProperties();
var _prop = properties[2];
Type _objType = _prop.PropertyType;
object objInstance = Activator.CreateInstance(_objType);
foreach (var subProperty in objInstance.GetType().GetProperties())
{
APIEndPointParameter _APIEndPointSubParameter = new APIEndPointParameter(subProperty.Name, "", "", false, subProperty.PropertyType.ToString(), null);
_APIEndPointParameter.SubParameters.Add(_APIEndPointSubParameter);
}