我在使用ServiceStack在swagger中显示正确的音符时遇到问题.
鉴于这种结构:
[Route("/Widget/{WidgetId}", Summary = "Updates a widget by id", Verbs = "POST",
Notes = "Updates a widget by id.")]
public class UpdateReqWidget : IReturnVoid
{
[ApiMember(Name = "WidgetId", Description = "The id of widget to delete.")]
public int WidgetId { get; set; }
}
public class WidgetService
{
public void Put(UpdateReqWidget req)
{
//do code here
}
}
Run Code Online (Sandbox Code Playgroud)
它正在生产: 
我希望参数列表只有WidgetId,但它显示的是WidgetId和UpdageReqWidget,它是请求的类名.什么想法我做错了什么?
编辑:我正在使用版本3.9.55 ServiceStack和ServiceStack.API.Swagger.我已经更改了模板以更好地满足我们的需求.
我想知道为C#转换对象的更好方法是什么:
MyClassName test = (MyClassName)object;
MyClassName test = object as MyClassName;
Run Code Online (Sandbox Code Playgroud)
我已经知道如果你做第一种方式,你得到一个例外,第二种方式它将test设置为null.但是,我想知道为什么一个在另一个?我看到第一种方式很多,但我喜欢第二种方式,因为那时我可以检查空...
如果没有"更好的方法",那么使用这种或那种方式的准则是什么?
我负责在组织内创建编码标准和进行代码审查.
我在源代码中遇到了这样的东西:
object.Property = myVar1 = myVar2;
Run Code Online (Sandbox Code Playgroud)
我个人并不是这样做的,因为我发现它令人困惑.我看到这个,我想这样读:
object.Property = myVar1 == myVar2;
Run Code Online (Sandbox Code Playgroud)
现在我知道它在做什么:它将myVar分配给myVar2,然后将object.Property分配给myVar2.编码标准文档没有明确说明您是否可以这样做.但它确实声明不在if语句中分配变量.
我想我的问题是,作为一种编码实践而不是这样做的风格是不是很糟糕?我不喜欢制定代码标准政策"仅仅因为我这么说"
编辑以更好地解释我的理解
我有一种有趣的感觉,这只是我对nHibernate和Fluent nHibernate的理解.
我有一个小型控制台应用程序,它根据一堆实体类导出一个模式.一切都很好,直到我这样做:
public virtual int UserId { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Email { get; set; }
public virtual UserType UserType { get; set; }
public virtual Client Client { get; set; }
public virtual string UniqueIdentifier { get; set; }
public virtual IList<UserAttribute> UserAttributes { get; set; }
/** CODE IN QUESTION **/
public virtual string GetAttributeValue(string name)
{
var value …Run Code Online (Sandbox Code Playgroud)