草庐IT

decorator

全部标签

javascript - 如何在 typescript 中包含原型(prototype)

我正在学习angular2,我已经为我想在我的一项服务中使用的chop方法编写了一个ts定义。chop.tsinterfaceString{truncate(max:number,decorator:string):string;}String.prototype.truncate=function(max,decorator){decorator=decorator||'...';return(this.length>max?this.substring(0,max)+decorator:this);};如何将其导入另一个typescript模块或至少使其可在全局范围内使用。

go - 一个通用的 golang 装饰器(要点需要澄清)

有人可以解释这个要点中发生了什么吗?我了解装饰器的概念以及此实现如何让人们创建通用装饰器,但我在几个部分(内联评论)中几乎没有迷失。如果有人能为我分解它,我将不胜感激。此外,如果这不是编写通用装饰器的最佳方式,那什么才是?我正在寻找一种装饰器,它可以装饰func(args...interface{})(interface{},error)类型的函数,而不会丢掉类型安全性。https://gist.github.com/saelo/4190b75724adc06b1c5apackagemainimport("fmt""reflect")funcDecorate(implinterface

javascript - 未知插件 "transform-decorators-legacy"在windows中使用react storybook时报错

我将一个在Linux上创建的React项目克隆到我的Windows机器上。该项目包括几个react组件和一个故事书来测试这些组件。“npmstart”配置为在“package.json”文件中运行故事书:“开始”:“npm运行故事书”输入“npmstart”后,我在浏览器控制台上收到此错误:“UncaughtError:模块构建失败:ReferenceError:‘C:\...\node_modules\@storybook\ui\node_modules\react-treebeard\.babelrc’中指定的未知插件“transform-decorators-legacy””.这

c# - 如何将验证处理从 Controller 操作转移到装饰器

维护编辑在使用这种方法一段时间后,我发现自己只是在每个Controller中添加了完全相同的样板代码,所以我决定做一些反射魔术。与此同时,我放弃了使用MVC来处理我的View-Razor是如此乏味和丑陋-所以我基本上将我的处理程序用作JSON后端。我目前使用的方法是用Route装饰我的查询/命令位于某些常见程序集中的属性,如下所示:[Route("items/add",RouteMethod.Post)]publicclassAddItemCommand{publicGuidId{get;set;}}[Route("items",RouteMethod.Get)]publicclass

c# - c#动态装饰对象

是否可以轻松动态装饰对象?例如,假设我有一个List.这个列表实际上是正弦函数的图。我想遍历这些点并为每个PointF添加一个标志,以确定它是否是峰值。但我不想创建一个新的扩展SpecialPointF或其他具有bool属性的东西。随心所欲地评判我是否懒惰,但懒惰是伟大创意的诞生方式(也是糟糕的创意)编辑:我会接受拳击解决方案以及您能想到的任何有趣的hack。没有什么能真正阻止我推导。我只是想知道有没有更好玩的方法。 最佳答案 不,没有办法(具体地)满足您的要求。假设您使用的是C#3.0+,您可以使用匿名类型来执行此操作,假设您不想

c# - 扩展方法 - 装饰者模式

我想知道我们是否可以将扩展方法视为C#中装饰器模式的实现?因为目标是一样的,但是实现的逻辑和概念可能不同?谢谢! 最佳答案 装饰器模式通常与独立于其他实例向类型的特定实例添加行为相关联。在扩展方法的情况下,它会影响在同一范围内编译的类型的所有实例。我认为它不是装饰器模式的一部分。 关于c#-扩展方法-装饰者模式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15211385/

c# - 如何使用方法参数属性

我一直在努力寻找如何编写自定义属性来验证方法参数的示例,即转换为以下形式:publicvoidDoSomething(Clientclient){if(client.HasAction("do_something")){//...}else{thrownewRequiredActionException(client,"do_something");}}进入这个:publicvoidDoSomething([RequiredAction(Action="some_action")]Clientclient){//...}据我所知,我需要将此属性添加到我的自定义属性中,但我不知道如何访问

c# - 具有许多属性的类的装饰器模式

我有这个简单的类:publicclassDataBag{publicstringUserControl{get;set;}publicstringLoadMethod{get;set;}publicdynamicParams{get;set;}publicintHeight{get;set;}publicDataBag(stringControl,objectvars,stringlm){UserControl=Control;LoadMethod=lm;Params=vars;Height=0;}}然后我想为它创建一个装饰器,它会添加一堆它自己的属性。问题是提供对装饰属性的访问的最简

C#:包装方法调用的优雅方式

为相当含糊的标题道歉,但我想要实现的目标可能在代码中有更好的说明。我有一个WCF客户端。当我调用方法时,我想将每个调用包装在一些错误处理代码中。因此,我没有直接公开这些方法,而是在客户端类上创建了以下辅助函数:publicTHandleServiceCall(FuncserviceMethod){try{returnserviceMethod(decorator);}[...]}客户端代码是这样使用它的:service.HandleServiceCall(channel=>channel.Ping("Hello"));并且对Ping的调用被很好地包裹在一些将尝试处理任何错误的逻辑中。除

c# - 装饰者模式的实现

尝试从“HeadFirstDesignPatterns”一书中的代码(用Java编写)在C#中实现装饰器模式。我刚开始使用C#,因此对语法还是陌生的,所以我不确定为什么我不能让下面的注释代码行工作。这是装饰器模式中的第一个抽象基类及其派生类:usingSystem;publicabstractclassBeverage{privateStringm_description;//getadescriptionofthebeveragepublicvirtualStringDescription{get{returnm_description;}}//calculatecostoftheb