草庐IT

BROADCAST_ACTION

全部标签

c# - 在 MVC 5 中的 Action Filters 中调用异步方法

我正在编写一个使用ActionFilterAttribute的Action过滤器(继承自HttpClient)将数据发布到OnResultExecuted中的外部服务器方法。HttpClient有方法PostAsync它返回一个可等待的Task.publicoverridevoidOnResultExecuted(ResultExecutedContextfilterContext){using(varclient=newHttpClient()){vartask=client.PostAsync(GetUri(),GetContent());varresult=task.Result

c# - 将 Action<T> 存储在单个集合中供以后使用

我试图在内存中保存Action类型的引用集合其中T是变量类型我找到了dynamic的解决方案但我不想使用动态解决方案publicclassMessageSubscriptor:IMessageSubscriptorPool{Dictionary>Callbacks=newDictionary>();publicvoidSubscribe(Actioncallback)whereT:IMessage{Callbacks.Add(typeof(T),(obj)=>callback(obj));}}有谁知道处理这个问题的更好方法吗?提前致谢。 最佳答案

c# - 它有什么区别 - 使用 Task.Run 运行 'async' Action 委托(delegate)(与默认 Action 委托(delegate)相比)?

我正在努力了解async/await并认为我确实了解有关用法的一些事情。但仍然不太清楚在下面的场景中实际好处是什么。查看Task.Run用法。第一种方法使用普通委托(delegate)并使用Thread.Sleep,但第二种方法使用“异步”委托(delegate)和Task.Delay。我的问题是:这对这个方法有什么影响(或没有影响)?该方法本身是一个异步方法。该代码正在创建一个单独的线程(通过Task.Run),并且该线程除了执行该委托(delegate)之外别无他法。因此,即使它在Task.Delay上产生等待,在这种情况下有什么用,因为线程无论如何都是一个孤立的线程,不用于任何其

c# - ThreadStart 和 Action 之间的区别

有人知道之间的区别吗Dispatcher.BeginInvoke(DispatcherPriority.Background,newThreadStart(()=>{和Dispatcher.BeginInvoke(DispatcherPriority.Background,newAction(()=>{ 最佳答案 应该没有区别。ThreadStart和Action定义为publicdelegatevoidThreadStart();publicdelegatevoidAction();即没有参数也没有返回值的委托(delegate)

c# - 带有字符串数组的 URL.Action?

我有一个字符串数组,我需要在Url.Action的查询字符串中传递这些字符串。Url.Action("Index","Resource",new{FormatIds=Model.FormatIDs})现在链接在我的浏览器中显示为System.String[]而不是查询字符串。是否可以让MVC通过模型绑定(bind)自动执行此操作?我需要它与我的Controller操作绑定(bind),例如:publicActionResultIndex(string[]formatIDs) 最佳答案 要使用默认绑定(bind)器获取要自动绑定(bi

c# - 如何从 Action 委托(delegate)创建 MethodInfo

我正在尝试开发一个NUnit插件,它从一个包含Action委托(delegate)列表的对象动态地将测试方法添加到套件中。问题是NUnit似乎严重依赖反射来完成工作。因此,似乎没有简单的方法可以将我的Action直接添加到套件中。相反,我必须添加MethodInfo对象。这通常会起作用,但Action委托(delegate)是匿名的,因此我必须构建类型和方法来完成此操作。我需要找到一种更简单的方法来执行此操作,而无需使用Emit。有谁知道如何轻松地从Action委托(delegate)创建MethodInfo实例? 最佳答案 您是否

c# - 在 MVC3 中的每个 Action 之前运行一个方法

在MVC3中,我们如何在运行每个Action之前运行一个方法?我知道我们可以对OnActionExecuting使用以下方法:publicclassValidateUserSessionFilterAttribute:ActionFilterAttribute{publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){...}}但是我们怎样才能在ActionExecuting之前运行一个方法呢? 最佳答案 您正在寻找Controller.Exec

c# - Action<T> 还是 Action<in T>?

我在MSDN上阅读有关ActionDelegate的信息所以这符合语法publicdelegatevoidAction(Tobj);比我看的c-sharpcorner.com它使用了这种语法publicdelegatevoidAction(Tobj);如您所见,T之前没有in。哪种语法是正确的,in是什么意思?编辑:用于Predicate的相同语法。谢谢。 最佳答案 in和out(通用逆变和协变)仅在C#4中引入,委托(delegate)和接口(interface)针对.NET4进行了修改-所以Action在.NET3.5中变为Ac

c# - Asp Action 路线数据

在旧版本的MVC5中,我可以这样做来传递路由参数@Html.ActionLink("Newitem","Suggestion",newProductSuggestion(){Username=Model.Username},new{@class="btnbtn-default"})我正试图让它与新的asp-action方法一起工作,我发现我可以把它作为一种解决方法。但正确的语法是什么?@{vara=newDictionary{{"Username",Model.Username}};}Newitem 最佳答案 DavePaquett

c# - c# wpf 动画结束时运行 Action

我正在学习wpf,同时用它开发应用程序。我很难弄清楚如何在双动画(或其他类型)完成后运行某些东西。例如:DoubleAnimationmyanim=newDoubleAnimation();myanim.From=10;myanim.To=100;myanim.Duration=newDuration(TimeSpan.FromSeconds(3));myview.BeginAnimation(Button.OpacityPropert,myanim);//CodetodosomethingwhenanimationendsusingSystem;usingSystem.Collect