小编myt*_*thz的帖子

如何从ASP.NET 4.0 Web应用程序中禁用/删除WebPageHttpModule?

我正在尝试使用我的通配符http处理程序来处理*.cshtml页面,但请求永远不会到达我的处理程序,因为它看起来像是被我发现通过此StackTrace存在的WebPageHttpModule拦截:

[HttpException (0x80004005): Exception of type 'System.Web.HttpException' was thrown.]
   System.Web.WebPages.ApplicationStartPage.ExecuteStartPage(HttpApplication application, Action`1 monitorFile, Func`2 fileExists, Func`2 createInstance, IEnumerable`1 supportedExtensions) +88
   System.Web.WebPages.ApplicationStartPage.ExecuteStartPage(HttpApplication application) +287
   System.Web.WebPages.WebPageHttpModule.StartApplication(HttpApplication application, Action`1 executeStartPage, EventHandler applicationStart) +113
   System.Web.WebPages.WebPageHttpModule.StartApplication(HttpApplication application) +71
   System.Web.WebPages.WebPageHttpModule.Init(HttpApplication application) +156
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +431
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +194
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +339
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +253

[HttpException (0x80004005): Exception of type 'System.Web.HttpException' was thrown.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +8972180
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +97
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net razor asp.net-webpages asp.net-mvc-3

10
推荐指数
1
解决办法
1280
查看次数

如何在我的域中引发的事件中设置RedMQ中的处理程序

刚刚了解消息队列和Redis MQ,优秀的框架.

我知道您必须使用.RegisterHandler(...)来确定哪个处理程序将处理消息队列中的消息/事件类型.

所以,如果我有EventA,EventB等我应该有一个处理这些事件的服务,例如:

public class DomainService : Service {

    public object Any(EventA eventA) {...}
    public object Any(EventB eventA) {...}
}
Run Code Online (Sandbox Code Playgroud)

那么这些应该只创建队列/ redis列表吗?

另外,如果我想要发生一系列事件,那么例如一个类型为EventA的消息也有一个处理程序,它发送一个电子邮件,提供早期链接的处理程序是否成功?

redis servicestack

8
推荐指数
1
解决办法
729
查看次数

如何在 MSBuild NuGet 包生成的 .nuspec 中注入自定义依赖项

我正在尝试迁移到使用 MSBuild Pack支持使用 .csproj 生成项目 NuGet 包,其中在开发过程中使用本地 .dll 来构建项目,但需要替换/交换它们以在生成的项目中引用外部 NuGet 包使用 MSBuild“打包”项目时的 .nuspec。

我能找到的该用例最接近的记录示例是Replacing one library from a Restore graph ,其中建议您可以替换外部 NuGet 引用:

<PackageReference Include="Newtonsoft.Json" Version="9.0.1">
  <ExcludeAssets>All</ExcludeAssets>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)

它会覆盖包以引用本地.dll

<Reference Include="Newtonsoft.Json.dll" />
Run Code Online (Sandbox Code Playgroud)

我正在尝试做类似的事情,项目应该针对本地构建.dll's,这些本地项目是从依赖的 TeamCity/CI 构建中作为工件注入的:

<Reference Include="..\..\lib\net45\ServiceStack.Interfaces.dll" />
<Reference Include="..\..\lib\net45\ServiceStack.Text.dll" />
<Reference Include="..\..\lib\net45\ServiceStack.Common.dll" />
Run Code Online (Sandbox Code Playgroud)

但是当ExcludeAssets=All按照文档使用时:

<PackageReference Include="ServiceStack.Common" Version="5.0.0">
  <ExcludeAssets>All</ExcludeAssets>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)

PackageReference 不会在生成的依赖项列表中导出,例如:

<group targetFramework=".NETFramework4.5" />
Run Code Online (Sandbox Code Playgroud)

我最接近获得首选行为的是使用ExcludeAssets="compile",这样我的本地项目就不会针对它进行构建,除了此行为也会导出到 .nuspec 中:

<group targetFramework=".NETFramework4.5">
  <dependency id="ServiceStack.Common" version="5.4.0" exclude="Compile,Build,Analyzers" />
</group>
Run Code Online (Sandbox Code Playgroud)

我只想避免在本地构建它,但将其作为正常依赖项导出。这种方法的另一个问题是我需要它引用尚未发布到 NuGet 的包(因为所有包都是锁定步骤发布的),例如:

<!-- …
Run Code Online (Sandbox Code Playgroud)

c# msbuild nuget

8
推荐指数
2
解决办法
1778
查看次数

将json反序列化为匿名类型列表

我有一个json如下:

  "[{"a":"b","c":"d"},{"a":"e","c":"f"},{"a":"g","c":"h"}]"
Run Code Online (Sandbox Code Playgroud)

现在我想把它变成匿名类型"foo"的对象列表

  var foo=new { a=string.empty , c=string.empty };
Run Code Online (Sandbox Code Playgroud)

代码是:

  ServiceStackJsonSerializer Jserializer = new ServiceStackJsonSerializer();
  dynamic foos = Jserializer.Deserialize<List<foo.GetType()>>(jsonString);
Run Code Online (Sandbox Code Playgroud)

但没有工作.

更新:

更换ServiceStackJavascriptSerializer和传球dictionary[]来解决,而不需要将问题anonymous类型

        JavaScriptSerializer jSerializer = new JavaScriptSerializer();
        var Foos = jSerializer.Deserialize<Dictionary<string, object>[]>(jsonString);
Run Code Online (Sandbox Code Playgroud)

asp.net json anonymous-types servicestack

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

如何使用Swift中带有typealias的Protocol中的约束引用泛型类?

我尝试定义一个协议,P2以便它返回一个带有另一个协议约束的泛型类P1,例如:

protocol P1 {}

class C<T : P1> {}

public protocol P2 {
    typealias T
    class func c() -> C<T>
}
Run Code Online (Sandbox Code Playgroud)

但是这会导致以下编译器错误:

error: type 'T' does not conform to protocol 'P1'
    class func c() -> C<T>
Run Code Online (Sandbox Code Playgroud)

似乎没有任何组合可以允许这种情况,例如下一个明显的语法:

protocol P1 {}

class C<T : P1> {}

public protocol P2 {
    typealias T
    class func c() -> C<T : P1>
}
Run Code Online (Sandbox Code Playgroud)

错误:

error: expected '>' to complete generic argument list
    class func c() -> C<T : P1>
                          ^ …
Run Code Online (Sandbox Code Playgroud)

generics protocols swift

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

如何查找Microsoft.AspNetCore.App共享框架中包含的所有包?

Microsoft.AspNetCore.App 共享框架中是否有所有程序集的官方列表?在 .csproj 中引用为:

<FrameworkReference Include="Microsoft.AspNetCore.App" />
Run Code Online (Sandbox Code Playgroud)

我所能找到的只是 2019 年 1 月的旧软件包列表,该列表不再存在于aspnetcore存储库中:

https://github.com/dotnet/aspnetcore/blob/da31275d4c03db4887293411cac76bd987e63548/src/Framework/Microsoft.AspNetCore.App.props

有没有官方的最新参考资料?

c# asp.net-core

5
推荐指数
1
解决办法
248
查看次数

C#的DataBinder.Eval是否有快速版本?

我想看一下ASP.NET的System.Web.UI.DataBinder.Eval()的快速版本是否存在?理想情况下编译为Func的东西我可以缓存并稍后调用,例如:

Func<object,string> expr = CompileDataBinder(typeof(Model), "model.PocoProperty.Name");
string propertyName = expr(model);
Run Code Online (Sandbox Code Playgroud)

有谁知道这样的野兽是否存在?

PS我没有使用ASP.NET,并希望它能在普通的C#中工作

c# expression eval compilation

3
推荐指数
1
解决办法
1099
查看次数

是否可以创建批量插入?

我刚开始发现serviceStack ORMlite,我正在试图弄清楚如何进行批量插入.在任何地方都有这样的例子吗?

提前致谢

servicestack ormlite-servicestack

3
推荐指数
1
解决办法
1836
查看次数

ServiceStack路由和动词

我正在尝试在我们为业务创建的服务中建立编码模式(一些规则).我们遵循apigree为设计RESTful服务而提出的基本指导.

我们希望采用的规则之一是阻止我们不想支持的某些路由和动词组合.据推测,我们会发回一个HttpStatusCode.NotSupported用于这些非法组合,也许是一个人类可读的消息?

我们希望支持的法律组合是:

GET /resource - lists all resources
GET /resource/{id} - retrieves specific resource by ID
POST /resource - adds a new resource 
PUT /resource/{id} - updates specific resource by ID
DELETE /resource/{id} - deletes specific resource by ID
Run Code Online (Sandbox Code Playgroud)

我们明确不想支持一些非法组合.

POST /resource
PUT /resource
DELETE /resource
Run Code Online (Sandbox Code Playgroud)

我们为每个支持的路由都有验证器.但是我们在代码库中的任何地方都没有定义任何这些非法路由.

从测试中我们了解到,如果客户端发送一个GET /resource/{id}空白id(string.Empty)的请求,那么ServiceStack magic不会为该请求执行验证器(GET /resource/{id}),而是重定向到GET/resource.我们认为它DELETE /resource/{id}PUT /resource/{id}.但是这些'默认'行为都不可取,我们宁愿返回一个HttpStatusCode.NotSupported或一些标头指向客户端到API文档(或一些这样的指导).

您能否建议一些选项来在框架中明确处理这些情况?

干杯

servicestack

3
推荐指数
1
解决办法
422
查看次数

如何更改ServiceStack中的默认ContentType?

我在ServiceStack中注册了一个新的内容类型:

appHost.ContentTypeFilters.Register("application/x-my-content-type", 
   SerializeToStream, DeserializeFromStream);
Run Code Online (Sandbox Code Playgroud)

如果客户端在http流中发送内容类型,一切都按预期工作.

不幸的是,我有一个客户端不在我的HTTP Request Heads控制之下,并且不发送内容类型.

如何让ServiceStack设置该路由的默认内容类型?

.net c# rest web-services servicestack

2
推荐指数
1
解决办法
2634
查看次数

如何指定在Swift中强制执行下标的泛型约束?

如何定义一个指定T支持Int我的泛型约束中的下标的关系,以便这个函数编译?

func index<T,U>(x:T) -> U {
    return x[0] //Invalid capability as expected
}
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是T[Int] == U我可以指定的地方可以使用和T索引进行索引,即:IntU

func index<T,U where T[Int] == U>(x:T) -> U {
    return x[0]
}
Run Code Online (Sandbox Code Playgroud)

但这种语法不起作用.无论如何我可以将这种关系指定为通用约束或协议吗?

swift

2
推荐指数
1
解决办法
552
查看次数