我的原始方法如下:
string DoSomeWork();
Run Code Online (Sandbox Code Playgroud)
方法DoSomeWork在其他线程上启动一些工作并返回执行ID(只是随机字符串).稍后我可以通过给定的执行ID查询结果.重点是在作业完成之前使执行ID可用.
现在我想更改签名以返回Task,因此用户可以等待.
Task DoSomeWork();
Run Code Online (Sandbox Code Playgroud)
同时我仍然需要返回执行ID(例如用于跟踪),我看到几个选项.首先是if out参数,第二个是返回带有执行ID和任务的元组(在C#中看起来不是最好的选项),第三个是我真正想要问的.
如果我将创建将从Task类派生的类,该怎么办:
public class ExtendedTask : Task
{
public string ExecutionID {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这看起来不错吗?或者最好决定其他选择?
PS在BCL中有一些派生自Task类.
更新,似乎我无法定义这个明确的enouthg.但是我需要在作业完成之前访问ExecutionID,因此我无法使用Task.Result.
推荐的运行脚本的方法是
powershell.exe -NonInteractive -Command " & some.ps1 "
Run Code Online (Sandbox Code Playgroud)
但是,例如TeamCity PowerShell runner使用:
powershell.exe -NonInteractive -Command - < some.ps1
Run Code Online (Sandbox Code Playgroud)
我不知道" - <"是什么意思,也无法找到有关主题的任何信息.有帮助吗?
我正在研究的域模型具有根聚合和子实体.类似下面的代码:
class Order
{
IList<OrderLine> Lines {get;set;}
}
class OrderLine
{
}
Run Code Online (Sandbox Code Playgroud)
现在我希望我的订单控制线.像这样的东西:
class Order
{
OrderLine[] Lines {get;}
void AddLine(OrderLine line);
}
Run Code Online (Sandbox Code Playgroud)
目前我们使用以下模式:
class Order
{
private IList<OrderLine> lines = new List<OrderLine>();
OrderLine[] Lines {get {return this.lines;}}
void AddLine(OrderLine line)
{
this.orders.Add(line);
{
}
Run Code Online (Sandbox Code Playgroud)
NHibernate直接映射到lines字段.
现在问题......
更新:似乎IEnumerable获胜,但解决方案仍然不完美......
VS WCF集成有很好的选项"在refrenced程序集中重用类型".问题是我需要相同的但是对于当前的组件.一些类型已在我的程序集中定义,我需要重用它们.
使用场景:
在第3步,我需要代理将返回TypeA.不是新的TypeA.
我试图解析混合文本和JSON的日志条目.第一行是文本表示,下一行是事件的JSON有效负载.其中一个可能的例子是:
2016-07-24T21:08:07.888Z [INFO] Command completed lessonrecords-create
{
"key": "lessonrecords-create",
"correlationId": "c1c07081-3f67-4ab3-a5e2-1b3a16c87961",
"result": {
"id": "9457ce88-4e6f-4084-bbea-14fff78ce5b6",
"status": "NA",
"private": false,
"note": "Test note",
"time": "2016-02-01T01:24:00.000Z",
"updatedAt": "2016-07-24T21:08:07.879Z",
"createdAt": "2016-07-24T21:08:07.879Z",
"authorId": null,
"lessonId": null,
"groupId": null
}
}
Run Code Online (Sandbox Code Playgroud)
对于此记录,我尝试将Log Metric Filter定义为a)匹配记录b)如果可能,选择数据或维度.
根据AWS docs,JSON模式应如下所示:
{ $.key = "lessonrecords-create" }
但它与任何东西都不匹配.我的猜测是因为在单个日志条目中混合文本和JSON.
因此,问题是:1.是否可以定义与此日志格式匹配的模式?2.是否可以从这种日志格式中提取尺寸,值?3.用模式帮助我做到这一点.
我使用命令行参数将一些配置传递给Windows服务(它将是几个具有不同命令行的实例).
我的代码看起来像这样:
HostFactory.Run(x =>
{
x.Service<MyHost>(s =>
{
s.ConstructUsing(name => new MyHost());
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.AddCommandLineDefinition("sqlserver", v => sqlInstance = v);
});
Run Code Online (Sandbox Code Playgroud)
当我安装服务时,我使用:
myhost.exe install -sqlserver:someinstance
Run Code Online (Sandbox Code Playgroud)
遗憾的是,sqlserver命令行选项仅在安装阶段可用,并且不会转到服务的参数.所以当我运行服务时,我没有得到我需要的参数值.
有没有办法修改TopShelf启动的服务命令行?
我正在使用Jenkins和email-ext发送构建通知.Build生成在out目录中存储为简单HTML的小型自定义报告.现在我可以轻松地将此报告附加到电子邮件中,但我想要的是将此报告呈现给电子邮件正文本身.我知道我可以编写自己的果冻模板,但这需要访问构建服务器(安装果冻脚本),我也想避免这种情况.所以我的问题是:
我需要测试从我的应用程序到LDAP的连接.我需要一些我可以轻松安装的东西(首选是xcopy).
多年前,我正在使用Active Directory应用程序模式(ADAM)来实现此目的.但它在Windows 8上不受支持.给我有趣的错误消息:
You do not have permission to update Windows. Please contact your system administrator.
Run Code Online (Sandbox Code Playgroud)
现在,它看起来像Active Directory轻量级目录服务(AD LDS).但是又一次:
Installer encountered an error: 0x80096002
The certificate for the signer of the message is invalid or not found.
Run Code Online (Sandbox Code Playgroud)
所以有两个问题:
我尝试使用Terraform实现AWS Lambda函数。
我只是拥有null_resource本地供应商,并且resource.archive_file在所有准备工作完成后都压缩了源代码。
resource "null_resource" "deps" {
triggers = {
package_json = "${base64sha256(file("${path.module}/src/package.json"))}"
}
provisioner "local-exec" {
command = "cd ${path.module}/src && npm install"
}
}
resource "archive_file" "function" {
type = "zip"
source_dir = "${path.module}/src"
output_path = "${path.module}/function.zip"
depends_on = [ "null_resource.deps" ]
}
Run Code Online (Sandbox Code Playgroud)
最近对Terraform的更改已弃用resource.archive_file,因此data.archive_file应改用。不幸的是,它data在资源之前执行,因此从依赖资源中创建本地预配器在创建zip之后就被称为。因此,下面的代码不再发出警告,但是根本不起作用。
resource "null_resource" "deps" {
triggers = {
package_json = "${base64sha256(file("${path.module}/src/package.json"))}"
}
provisioner "local-exec" {
command = "cd ${path.module}/src && npm install"
}
}
data …Run Code Online (Sandbox Code Playgroud) Microsoft .NET Framework客户端配置文件脱机安装程序 - 255.6 MB.不应该是27MB左右吗?
这里包中的最大文件列表(大小,以字节为单位).
所以可能是正确的问题是为什么全标记的.NET 3.5包在这里?我不知道.