Type[] types = { typeof(MyType), typeof(AnotherType), *add more here* };
foreach(Type t in types)
{
List<string> propExample = new List<string>();
foreach(var p in t.GetProperties())
{
propExample.Add(p.Name + "=value");
}
config.SetSampleForType(string.Join("&", propExample), new MediaTypeHeaderValue("application/x-www-form-urlencoded"), t);
}
foreach ( Type t in new Type[] { typeof( MyType ) } )
{
List<string> propExample = new List<string>();
foreach ( var p in t.GetProperties() )
{
propExample.Add( p.Name + "=" + HttpUtility.UrlEncode( config.GetHelpPageSampleGenerator().GetSampleObject(p.PropertyType).ToString() ) );
}
config.SetSampleForType( string.Join( "&", propExample ), new MediaTypeHeaderValue( "application/x-www-form-urlencoded" ), t );
}
4条答案
按热度按时间kx5bkwkv1#
这是预期的行为。HelpPage范例产生会使用HttpConfiguration上存在的实际格式子来“写入”范例对象。FormUrlEncodedMediaTypeFormatter无法“写入”任何型别,因此HelpPage无法为其产生范例。您可以明确提供特定型别的范例(如Areas\HelpPage\App_Start\HelpPageConfig.cs的注解程式码中所示)做为替代方法。
eqoofvh92#
答案帮了我的忙,但是我厌倦了为系统不知道的每种类型写一个例子......我最后做的是这样的
有些人可以变聪明,扩展它,使它根据属性类型放入默认值,但这对我的目的来说已经足够了。
x8diyxa73#
我知道我迟到了...
借用@Adween的答案,试图满足挑战。
"有人可以变聪明,扩展它,使它根据属性类型放入默认值..."
我尝试为参数插入示例值。我不喜欢我必须对示例值进行URLEndcode,但我更喜欢输出。
cuxqih214#
回答Adveen https://stackoverflow.com/a/35607342/20446686,而不是像脚本Type[] types = { typeof(MyType),typeof(AnotherType),add more here }中那样手动添加类型;我们可以通过以下方式动态添加类型
类型[]类型=汇编.获取执行汇编().获取类型();