我正在尝试阅读Azure Service Bus队列技术规格和定价,但我不清楚
1)邮件是否有任何大小限制?
2)定价是否可能不依赖于消息大小?看来,但我无法相信.
(我希望每封邮件发送大约10K - 100K数据.在多个实例中运行的并发相同工作者角色将使用消息队列.
Thx提前
我正在密集使用NUnit TestCase属性.对于我的一些测试,使用20多个TestCase属性进行注释,定义了20多个测试用例.但是,我想测试所有20个测试用例,并说出额外的值,可能是1或0.这对我来说意味着不同的测试用例.使用ValuesAttribute可以轻松实现:
我目前的状态:
[TestCase(10, "Hello", false)] // 1
[TestCase(33, "Bye", true)] // 2
// imagine 20+ testcase here)]
[TestCase(55, "CUL8R", true)] // 20+
public void MyTest(int number, string text, bool result)
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情(我不能:)
[TestCase(10, "Hello", false)] // 1
[TestCase(33, "Bye", true)] // 2
// imagine 20+ testcase here)]
[TestCase(55, "CUL8R", true)] // 20+
public void MyTest([Values(0,1)] int anyName, int number, string text, bool result)
Run Code Online (Sandbox Code Playgroud)
我为什么要这样做?因为这40多个组合意味着不同的测试用例.不幸的是,NUnit不允许同时使用[TestCase]和[Values]属性,测试运行器需要与TestCaseAttribute中列出的参数数量完全相同的参数.(我可以理解建筑师,但仍然......)我唯一能想到的是:
[TestCase(1, 10, "Hello", false] // 1
[TestCase(1, 33, "Bye", true] // 2 …Run Code Online (Sandbox Code Playgroud) 这不是重复的.看到我的评论,还看到我的额外诊断.结果
编辑 现在变得更加奇怪了.第二天早上我打开了我的VS和这个项目,还有Scaffolding菜单项.使用它们几次,然后消失了.我以为我在项目中做了一些事情,所以源代码控制撤消所有:没有帮助.VS关闭/开放:没有帮助.机器重启:没有帮助.创建一个全新的ASP MVC 5项目,该项目也没有任何MVC之类的竞争菜单,既没有右键单击控制器或视图:没有帮助.这太可怕了.但除了可怕之外,我在工作中几乎被禁用:-(有人知道发生了什么吗? 编辑
使用VS 2013更新3我创建了一个新的ASP MVC 5项目.右键单击Solution Explorer中的Controllers文件夹,上下文菜单中缺少'New Scaffolded Item ...'.顺便说一句,添加控制器也丢失了.见附图.
额外的诊断结果:
1)转移到另一台机器的完全相同的解决方案按预期工作.解决方案是通过源代码控制传输的,所以它是相同的.csproj文件(好.csproj.user可以不同)
2)我们谈论的解决方案是在我的机器中创建的,它展示了这个问题
3)如果我重复实验,在我的机器中创建一个新的ASP MVC 5 Web应用程序,则缺少上下文菜单.

我错过了什么?Thx提前
上下文
最近,TypeScript编译器(1.8.x)也可以作为Nuget Package使用.然而这里有一个有点混乱的事实,有两个包
在我的项目(.csproj)中,TypeScript版本最初设置为1.7
<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>
Run Code Online (Sandbox Code Playgroud)
我想知道安装a)或b)后会发生什么
问题/问题
我不知道如何诊断Visual Studio 2015构建期间关于TypeScript编译的确切情况的简单方法.
Diganostic结果(可选阅读,如果有人有兴趣)
由于我缺乏知识,我不得不使用Mark Russinovich的ProcessMonitor来确保发生了什么.这是一个问题:如何做到这一点更简单?
安装a)除了将tsc的工作实例复制到项目的/ packages文件夹之外什么都不做.没有触及.csproj文件.因此,最初配置的MSBuild任务将应用于.ts文件,并且原始安装的tsc 1.7正在从Program Files运行
卸载a)正确"恢复"原始状态.(嗯,这只是从/ packages文件夹中删除包
安装b)与a)相同+更改.csproj中的MSBuild任务条目.因此,新的tsc 1.8将从/ package文件夹运行.
卸载b)从.csproj文件中删除所有,包括所有与TypeScript相关的MSBuild任务.这是静默禁用所有ts文件编译(没有警告和错误).恢复默认行为的简单方法是向项目添加一个虚拟.ts文件,该文件将默认的 MSBuild任务插回到.csproj文件中.
安装被触及设置:
<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>
Run Code Online (Sandbox Code Playgroud)
回到问题
有没有比使用ProcessMonitor更简单的方法来查看VS 2015构建过程中TypeScript的确切情况?
我无法弄清楚如何访问我的ConsoleHostedService实现类中的命令行参数。我在源代码中看到CreateDefaultBuilder(args)以某种方式将其添加到配置中...名为Args...
有主程序:
internal sealed class Program
{
private static async Task Main(string[] args)
{
await Host.CreateDefaultBuilder(args)
.UseContentRoot(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))
.ConfigureServices((context, services) =>
{
services.AddHostedService<ConsoleHostedService>();
})
.RunConsoleAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
和托管服务:
internal sealed class ConsoleHostedService : IHostedService
{
public ConsoleHostedService(
IHostApplicationLifetime appLifetime,
IServiceProvider serviceProvider)
{
//...
}
}
Run Code Online (Sandbox Code Playgroud) 语境
我能够通过将项目属性/调试启动设置为 Roslyn 组件,然后将目标项目组合设置为我的使用项目之一来调试 VS 2019 中的源生成器:
现在 VS 2022 中似乎缺少此功能,我无法使用具有类似设置的启动配置文件 UI 创建启动配置文件。
问题
如何在 Visual Studio 2022 中调试 Roslyn 源生成器?
debugging visual-studio roslyn sourcegenerators visual-studio-2022
我想阅读,修改和写回csproj文件.我发现了这段代码,但不幸的是引擎类被折旧了.
Engine engine = new Engine()
Project project = new Project(engine);
project.Load("myproject.csproj");
project.SetProperty("SignAssembly", "true");
project.Save("myproject.csproj");
Run Code Online (Sandbox Code Playgroud)
所以我继续根据提示我应该使用Evaluation.ProjectCollection而不是Engine:
var collection = new ProjectCollection();
collection.DefaultToolsVersion = "4.0";
var project = new Project(collection);
// project.Load("myproject.csproj") There is NO Load method :-(
project.FullPath = "myproject.csproj"; // Instead of load? Does nothing...
// ... modify the project
project.Save(); // Interestingly there is a Save() method
Run Code Online (Sandbox Code Playgroud)
没有Load方法了.我试图设置属性FullPath,但项目似乎仍然是空的.错过了什么?
(请注意我知道.csproj文件是带有XSD架构的标准XML文件,我知道我们可以使用XDocument或XmlDocument来读/写它.这是一个备份计划.只需看看.Save()方法就可以了.项目类我认为如果我无法加载现有的.csproj,我会错过一些东西.thx)
我有一个源类型,它具有属性和目标类型,具有完全相同的属性.
为AutoMapper配置一个简单的映射后,如:
Mapper.CreateMap<MySourceType, MyDestinationType>();
Run Code Online (Sandbox Code Playgroud)
我想有一个MyDestinationType的构造函数,它有一个MySourceType参数,然后自动初始化创建类型的属性,源代码如下:
public MyDestinationType(MySourceType source)
{
// Now here I am do not know what to write.
}
Run Code Online (Sandbox Code Playgroud)
我找到的唯一解决方法是为其创建一个静态工厂方法
public static MyDestinationType Create(MySourceType source)
{
return Mapper.Map<MyDestinationType>(source);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法不让这种静态的丑陋?
我有一个sync方法,现在我想实现它的异步版本.幸运的是,底层调用已经有一个异步版本(dbSet.SaveChangesAsync()),但是在我的算法中有一个if分支以常量文字1返回.
我不知道如何在异步版本中实现这个部分?
同步版本:
public virtual int Add(T entity)
{
SetLogContext(entity, _logctx);
dbSet.Add(entity);
if (isAutonomous)
{
return ctx.SaveChanges();
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
异步版本:
public virtual Task<int> AddAsync(T entity)
{
SetLogContext(entity, _logctx);
dbSet.Add(entity);
if (isAutonomous)
{
return ctx.SaveChangesAsync();
}
return ??? // What to write here?
}
Run Code Online (Sandbox Code Playgroud) 我知道 IJSRuntime 实现(在 Blazor 服务器应用程序中)使用 SignalR 与其客户端通信以执行给定的 JavaScript 函数。
问题
是否有可能在纯 ASP.NET Pages 应用程序中拥有这个唯一的功能(无需重新发明轮子并从头开始实现)?据我了解,我们必须有一个 SignalR 通道、一个客户端脚本和服务器端的 IJSRuntime 实现。(没有 Blazor SPA 基础设施和所有渲染技巧)
c# ×4
.net ×2
msbuild ×2
.net-core ×1
asp.net-core ×1
asp.net-mvc ×1
async-await ×1
automapper ×1
automapper-2 ×1
automapper-3 ×1
azure ×1
csproj ×1
debugging ×1
nuget ×1
nunit ×1
razor ×1
razor-pages ×1
roslyn ×1
typescript ×1