我在Application_Start方法中使用的Autofac模块中有以下代码:
builder.Register(c => new Configuration().Configure().BuildSessionFactory())
.SingletonScoped();
builder.Register(c => c.Resolve<ISessionFactory>().OpenSession())
.HttpRequestScoped();
builder.Register<NHibernateSomethingRepository>().As<ISomethingRepository>();
Run Code Online (Sandbox Code Playgroud)
存储库的构造函数将ISession作为参数.但是我最终为整个应用程序提供了一个会话,即使我明确要求它是HttpRequestScoped.
我已经配置了ContainerDisposal HTTP模块.
根据文档,您必须创建一个嵌套容器,但我让Autofac自动装配依赖项.
我该怎么办?
谢谢!
我正在研究软件工程的一般主题,我遇到了Java Community Process网站:
JCP是为Java技术开发标准技术规范的机制.任何人都可以注册该站点并参与审阅和提供Java规范请求(JSR)的反馈,任何人都可以注册成为JCP成员,然后参与JSR的专家组,甚至提交他们自己的JSR提案.
对我来说似乎是一个好主意,并且在JCP网站上有很多非常好的书面规范和参考实现.
那么为什么没有.NET Community Process呢?这是微软可以或应该开始的吗?也许他们可以在Codeplex.net上安装它并将密钥交给社区.
我想做这个:
list.Select((x, i) => new { Item = x, Index = i })
Run Code Online (Sandbox Code Playgroud)
但是在LINQ查询语法中,类似于:
from x in list
select(x, i) { Item = x, Index = i }
Run Code Online (Sandbox Code Playgroud)
但这不起作用.或者也许还有另一种方法可以在LINQ查询中增加en范围变量?
我在写C#代码
Console.Write("{0,-25}", company);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中这"{0,-25}"是什么意思?
我正在为ActiveX HTTP控件制作测试装备,我需要创建一个安全POST的网站.为了简单起见,我正在使用VS调试服务器运行Web应用程序; Web应用程序项目是测试应用程序解决方案的一部分.AX控件不支持NTLM身份验证.有没有简单的方法可以在没有NTLM或重定向到页面表单的情况下要求非常基本的http身份验证?我只需要在帖子中要求用户名和密码.用户名和密码内容无关紧要,因此所有内容都将以明文形式存储.
我在Web.Config中尝试过身份验证模式; Windows看起来与NTLM相同(可能是错误的),Forms需要一个表单来连接并设置一个cookie,Passport超出了这个项目的范围,我不知道我是如何实现None的.有任何想法吗?
我在Web.Config中尝试了"authentication mode ="Windows"",并在Web应用程序的"Web"选项卡中选中了NTLM复选框.
c# asp.net authentication basic-authentication visual-studio
Azure Functions 应用程序,运行时 v3。
该应用程序有一个FunctionsStartup类,它首先在其方法中启用 Azure 应用程序配置ConfigureAppConfiguration:
builder.ConfigurationBuilder.AddAzureAppConfiguration(options =>
{
options
.Connect(appConfigurationConnectionString)
.UseFeatureFlags();
});
Run Code Online (Sandbox Code Playgroud)
在其Configure方法中,它启用功能管理,并添加 Azure 应用程序配置服务(以便我们可以在运行时刷新设置):
builder.Services
.AddAzureAppConfiguration()
.AddFeatureManagement()
.AddFeatureFilter<ContextualTargetingFilter>();
Run Code Online (Sandbox Code Playgroud)
在 Azure 门户上有一个已启用的功能标志,称为CardExpirationNotice。该代码用于IFeatureManagerSnapshot检查该功能是否启用:
feature = nameof(Features.CardExpirationNotice);
var isEnabled = await _featureManagerSnapshot.IsEnabledAsync(feature);
Run Code Online (Sandbox Code Playgroud)
isEnabled是false,并且输出此日志消息:
找不到功能“CardExpirationNotice”的功能声明。
我尝试在 local.settings.json 中本地配置一个标志:
"FeatureManagement__CardExpirationNotice": true
Run Code Online (Sandbox Code Playgroud)
然后isEnabled是true,因此我可以将问题缩小到 Azure 应用程序配置,并排除功能管理实现。
鉴于这些路线:
routes.MapRoute("Test", "test", new { controller = "Test", action = "Index" });
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
如果我从TestController的Index操作调用RedirectToRoute("Default")它重定向到/test但我希望它重定向到/
我在调试会话期间返回之前检查了调用RedirectToRoute("Default")的结果.
RedirectToRouteResult result = RedirectToRoute("Default");
它有一个属性RouteName,其值为"Default",属性RouteValues没有元素(Count = 0).我使用Reflector检查,并在内部传递null作为RouteValueDictionary.
同样,我希望给定我的应用程序中定义的路由的默认值,它将重定向到HomeController上的Index视图.
为什么不重定向/?
会话启动时如何在Global.asax页面事件中将Session值设置为空("")字符串?可以请任何帮助我.
我正在为DbContext实现一个XUnit测试,似乎DbContext没有正确处理.当我调试第一个测试时,它可以工作,但在第二个测试中,listAds抛出了已经添加的错误.
添加监视后,在第二个测试中,_context为null,但它具有Advertisementsbefore之前的值_context.Advertisements.AddRange(listAds);.
public class AdsServiceTest: IDisposable
{
private readonly DbContextOptions<SensingSiteDbContext> _options;
private readonly SensingSiteDbContext _context;
private readonly AdsService _AdsService;
public AdsServiceTest()
{
//initialize db options
_options = new DbContextOptionsBuilder<SensingSiteDbContext>()
.UseInMemoryDatabase()
.Options;
//get service
_context = new SensingSiteDbContext(_options);
//initialize dbcontext
List<Ads> listAds = new List<Ads>() {
new Ads(){ Id=1,AdsName="Ads1", Deleted=false},
new Ads(){ Id=2,AdsName="Ads2", Deleted=false},
new Ads(){ Id=3,AdsName="Ads3", Deleted=false}
};
//In the second test method, it throw errors, listAds already exist in
_context.Advertisements.AddRange(listAds);
_context.SaveChanges(); …Run Code Online (Sandbox Code Playgroud) 我将我的项目(https://github.com/MarkKhromov/The-Log)迁移到.NET Standard 2.0并且我的appveyor构建已损坏.我怎么解决这个问题?
我的方案包含:
我已经尝试过写道:
dotnet: 2.0.0
script:
- dotnet restore
- dotnet build
Run Code Online (Sandbox Code Playgroud)
要么
- dotnet build TheLog/TheLog.csproj -c Release -f netstandard2.0
- msbuild TheLog.Demos/TheLog.Demos.csproj /p:Configuration=Release
- msbuild TheLog.Tests/TheLog.Tests.csproj /p:Configuration=Debug
- nunit-console TheLog.Tests/TheLog.Tests.csproj
Run Code Online (Sandbox Code Playgroud)
但每次我都有错误
c# ×6
asp.net ×2
asp.net-mvc ×2
.net ×1
appveyor ×1
autofac ×1
global-asax ×1
linq ×1
nhibernate ×1
process ×1
xunit ×1