小编Tea*_*oKi的帖子

无国籍与有状态 - 我可以使用一些具体信息

我对那些在编程中有关于无状态和有状态设计的具体信息的文章很感兴趣.我很感兴趣,因为我想了解更多,但我真的找不到任何关于它的好文章.我已经阅读了几十篇关于网络的文章,这些文章模糊地讨论了这个主题,或者他们谈论的是网络服务器和会话 - 这也是'有状态与无国籍的关系,但我对无状态与编码属性的有状态设计感兴趣.示例:我听说BL-classes在设计上是无状态的,实体类(或者至少我称之为Person(id,name,..))是有状态的等等.

我认为重要的是要知道,因为我相信如果我能理解它,我可以编写更好的代码(例如粒度).

无论如何,真的很短,这就是我所知道的'有状态对无国籍:

有状态(如WinForms):存储数据以供进一步使用,但限制了应用程序的可伸缩性,因为它受CPU或内存限制的限制

无状态(与ASP.NET一样 - 尽管ASP尝试使用ViewStates保持状态):操作完成后,数据将被传输,实例将被传回线程池(Amorphous).

正如您所看到的,它是非常模糊和有限的信息(并且非常关注服务器交互),所以如果您能为我提供更多美味的信息,我将非常感激:)

terminology stateful stateless

87
推荐指数
5
解决办法
12万
查看次数

使用属性路由为Web Api构建URL视图

如何在我看来从web api获取网址?

示例(来自msdn-blog):

[RoutePrefix("reviews")]
public class ReviewsController : ApiController
{
    // eg.: /reviews
    [Route]
    public IHttpActionResult Get() { ... }
    // eg.: /reviews/5
    [Route("{reviewId}")]
    public IHttpActionResult Show(int reviewId) { ... }
    // eg.: /reviews/5/edit
    [Route("{reviewId}/edit")]
    public IHttpActionResult Edit(int reviewId) { ... }
}
Run Code Online (Sandbox Code Playgroud)

现在我想在我的视图中构建"/ reviews/edit",我该怎么做?

我尝试创建一个小扩展方法,但它要求我给每个路由一个实际的"RouteName".有没有我可以使用的方法(比如在MVC中)我可以通过控制器和动作?

@Url.Action("Edit", "Reviews)
Run Code Online (Sandbox Code Playgroud)

我现在使用的方法(使用RouteName)也不允许我使用整数作为参数(除非我传递一个默认值).如果我确实需要命名我的所有路由,我如何创建路由URL,但是在我的请求的"数据"部分中传递我的参数?

目前的方法:

public static string ResolveWebApiRoute(this UrlHelper urlHelper, string routeName, object routeValues = null)
{
    var newRouteValues = new RouteValueDictionary(routeValues);
    newRouteValues.Add("httproute", true);

    return urlHelper.RouteUrl(routeName, newRouteValues);
}
Run Code Online (Sandbox Code Playgroud)

编辑

当我使用类似的方法时Url.RouteUrl(new { …

c# asp.net-mvc asp.net-web-api attributerouting

9
推荐指数
1
解决办法
1万
查看次数

在Image上数据绑定但我需要一个byteArray

我正在使用Winforms,CAB,C#和Infragistics.我正在尝试使用与WCF连接的后端使用MVP.

在我的演示者中,我有我的模型,我们称之为AgreementDataContract.此数据协定有许多属性:

    ...
    [DataMember]
    public byte[] PVImage { get; set; }

    [DataMember]
    public byte[] OntwerpImage { get; set; }

    [DataMember]
    public Decimal WattpiekPrijs { get; set; }
    ...
Run Code Online (Sandbox Code Playgroud)

您会注意到Image存储为byte [].我将这些属性绑定到我的用户控件上的控件:

    BindingHelper.BindField(_ultraPictureBoxPV, "Image", _bindingSource, "PVImage");
    BindingHelper.BindField(_ultraPictureBoxOntwerp, "Image", _bindingSource, "OntwerpImage");
Run Code Online (Sandbox Code Playgroud)

BindingHelper只是将BindingContext添加到指定的Controler(control.BindingContext.Add(...)).

无论如何,问题是:数据契约包含图像作为bytearray,而我绑定到图像.这会导致属性保持为"null",因为他不想将一个Image放在byteArray中;)

我试过玩它,但我想我有两种可能性:

  1. 我可以尝试使用某种转换器吗?因此,当插入Image时,它将作为byteArray而不是Image传递给Model(=数据绑定).

  2. 我可以删除绑定并在表单"提交"时创建一个事件,并将图像转换为byteArray并填写模型.(=没有数据绑定)

TL; DR; 您是否知道在将图像传递给数据绑定时将图像"转换"为bytearray的方法?

我希望我的问题很明确!谢谢您的帮助

c# data-binding mvp infragistics

6
推荐指数
1
解决办法
1268
查看次数