我想在安装时将一些自定义参数传递给控制台应用程序,并通过TopShelf将其作为Windows服务启动.
我用的时候:
MyService install start /fooBar: Test
Run Code Online (Sandbox Code Playgroud)
控制台应用失败:
[Failure]命令行找到了一个未知的命令行选项:DEFINE:fooBar = Test
题:
如何让我的参数被TopShelf识别,以便我可以消耗它们的值?
我创建了一个菜单,想要突出显示我选择的项目,我做到了.但是当我按后退/前进按钮时,菜单项不会突出显示.我该怎么办?
我试图使用addEventListener但失败了.
有人可以提供一些建议吗?
class Sidebar extends React.Component {
constructor(props) {
super(props);
this.state={
test: "home"
}
this.menuClickHandle = this.menuClickHandle.bind(this);
}
componentWillMount(){
hashHistory.listen((event)=>{
test1 = event.pathname.split("/");
});
this.setState({
test:test1[1]
});
}
menuClickHandle(item) {
this.props.clickItem(item.key);
}
onCollapseChange() {
this.props.toggle();
}
render() {
var {collapse} = this.props;
return (
<aside className="ant-layout-sider">
<Menu mode="inline" theme="dark" defaultSelectedKeys={[this.state.test || "home"]} onClick={this.menuClickHandle.bind(this)}>
<Menu.Item key="home">
<Link to="/home">
<Icon type="user"/><span className="nav-text">????</span>
</Link>
</Menu.Item>
<Menu.Item key="banner">
<Link to="/banner">
<Icon type="setting"/><span className="nav-text">Banner??</span>
</Link>
</Menu.Item>
</Menu>
<div className="ant-aside-action" onClick={this.onCollapseChange.bind(this)}>
{collapse ? <Icon type="right"/> …Run Code Online (Sandbox Code Playgroud) 我正在尝试反序列化 JSON,如下所示:
{ "Parameters": [ 1, "2", true, false, null ] }
Run Code Online (Sandbox Code Playgroud)
使用System.Text.Json序列化器。目标类如下所示:
public class Payload {
public object[] Parameters { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
参数始终是原始值,如数字、字符串、布尔值等。但看起来像是用值而不是普通标量值System.Text.Json填充我的Parameters数组
。JsonElement这是代码示例:
var payload = new Payload {
Parameters = new object[] {
1, "2", true, false, null
}
};
var json = JsonSerializer.Serialize(payload);
// result: {"Parameters":[1,"2",true,false,null]}
var deserialized = JsonSerializer.Deserialize<Payload>(json);
// result: deserialized.Parameters are all `JsonElement` values
Run Code Online (Sandbox Code Playgroud)
使用该类的代码Payload不依赖于System.Text.Json,它与序列化程序无关。有没有办法使用 s 来反序列化对象数组System.Text.Json并返回普通标量值 …
我正在构建一个使用 Parcel 或 Webpack 捆绑的 React 应用程序。
该应用程序应该能够嵌入
由第三方开发并作为现代 javascript 模块托管在其他地方的外部 React 组件:
// https://example.com/scripts/hello-plugin.js
import React from 'react';
export default class HelloPlugin extends React.Component {
render() {
return "Hello from external plugin!";
}
}
Run Code Online (Sandbox Code Playgroud)
主机应用程序使用异步导入来加载这些组件,例如:
// createAsyncComponent.tsx
import * as React from 'react';
import { asyncComponent } from 'react-async-component';
export default function createAsyncComponent(url: string) {
return asyncComponent({
resolve: () => import(url).then(component => component.default),
LoadingComponent: () => <div>Loading {url}....</div>,
ErrorComponent: ({ error }) => <div>Couldn't load {url}: {error.message}</div>,
})
} …Run Code Online (Sandbox Code Playgroud) 我正在使用容器层次结构来控制IDisposable部件的生命周期.子容器附加到包含非共享部分的筛选目录.这是一段代码:
[Export(typeof(ITest)), PartCreationPolicy(CreationPolicy.NonShared)]
class Test : ITest, IDisposable
{
public void Dispose() {}
}
public interface ITest {}
class Program
{
static void Main()
{
// parent container to hold shared disposable parts
var cat = new AssemblyCatalog(typeof(Program).Assembly);
var parent = new CompositionContainer(cat);
// child container to hold non-shared disposable parts
var nsCat = CreateNonSharedPartCatalog(cat);
var child = new CompositionContainer(nsCat, parent);
// no cardinality mismatch exception: exactly one export found
var exp = child.GetExport<ITest>();
// lazy exports: count == 2 …Run Code Online (Sandbox Code Playgroud) 有没有办法解开的IObservable<Task<T>>进入IObservable<T>保持同样的事件顺序,这样的吗?
Tasks: ----a-------b--c----------d------e---f---->
Values: -------A-----------B--C------D-----E---F-->
Run Code Online (Sandbox Code Playgroud)
假设我有一个消耗流消息的桌面应用程序,其中一些需要大量的后处理:
IObservable<Message> streamOfMessages = ...;
IObservable<Task<Result>> streamOfTasks = streamOfMessages
.Select(async msg => await PostprocessAsync(msg));
IObservable<Result> streamOfResults = ???; // unwrap streamOfTasks
Run Code Online (Sandbox Code Playgroud)
我想象有两种处理方式.
首先,我可以订阅streamOfTasks使用异步事件处理程序:
streamOfTasks.Subscribe(async task =>
{
var result = await task;
Display(result);
});
Run Code Online (Sandbox Code Playgroud)
其次,我可以转换streamOfTasks使用Observable.Create,像这样:
var streamOfResults =
from task in streamOfTasks
from value in Observable.Create<T>(async (obs, cancel) =>
{
var v = await task;
obs.OnNext(v);
// TODO: don't know when to call obs.OnComplete()
}) …Run Code Online (Sandbox Code Playgroud) 据我所知,TIMESTAMP WITH LOCAL TIME ZONE值被透明地转换为和来自用户的会话时区。但是我从数据库中读取的值与之前插入的值不同。是否有我可以调整的数据库或会话参数来解决这个问题?
这是我的测试用例:
select systimestamp(0) from dual;
-- SYSTIMESTAMP 15/03/2017 19:01:13 +03:00
select dbtimezone from dual;
-- DBTIMEZONE -07:00
create table test_timestamps
(
id number generated by default on null as identity,
systimestamp_col timestamp(0) with local time zone default on null systimestamp,
sysdate_col timestamp(0) with local time zone default on null sysdate,
current_timestamp_col timestamp(0) with local time zone default on null current_timestamp(0),
date_col timestamp(0) with local time zone
);
alter session set time_zone='0:00';
insert into …Run Code Online (Sandbox Code Playgroud)