小编yal*_*lie的帖子

如何使用TopShelf无法识别的CommandLine参数?

我想在安装时将一些自定义参数传递给控制台应用程序,并通过TopShelf将其作为Windows服务启动.

我用的时候:

MyService install start /fooBar: Test
Run Code Online (Sandbox Code Playgroud)

控制台应用失败:

[Failure]命令行找到了一个未知的命令行选项:DEFINE:fooBar = Test

题:

如何让我的参数被TopShelf识别,以便我可以消耗它们的值?

.net c# windows-services topshelf

21
推荐指数
1
解决办法
1万
查看次数

react-router + antD /按后退/前进按钮时如何突出显示菜单项?

我创建了一个菜单,想要突出显示我选择的项目,我做到了.但是当我按后退/前进按钮时,菜单项不会突出显示.我该怎么办?

我试图使用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)

menuitem react-router antd

10
推荐指数
4
解决办法
9008
查看次数

System.Text.Json对象数组反序列化

我正在尝试反序列化 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并返回普通标量值 …

c# json deserialization system.text.json

7
推荐指数
1
解决办法
3773
查看次数

使用外部插件反应应用程序

我正在构建一个使用 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)

module parcel typescript reactjs webpack

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

MEF容器层次结构和GetExports <T>

我正在使用容器层次结构来控制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)

c# containers mef hierarchy

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

将IObservable <Task <T >>解包到IObservable <T>中

有没有办法解开的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)

c# task-parallel-library system.reactive .net-4.5 rx.net

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

带有本地时区值的 Oracle 时间戳透明转换

据我所知,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)

oracle session timezone timestamp-with-timezone

4
推荐指数
2
解决办法
8797
查看次数