编程语言
首页 > 编程语言> > c# – 如何开始使用TopShelf

c# – 如何开始使用TopShelf

作者:互联网

我最近发现了TopShelf.从我读过的所有内容来看,它看起来非常酷.唯一的问题是我无法使用它.我不得不错过一些东西.以下是我的代码.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;

namespace TestTopShelf {
public class FooBar {
    public FooBar() {

    }

    public void Start() { }
    public void Stop() { }
}

public class Program {
    public static void Main() {
        HostFactory.Run(x => {

            x.Service<FooBar>( s => { 

            });
        });
    }
}
}

你可以看到它有点不完整.当我尝试为ConstructUsing,WhenStarted和WhenStopped设置’s’对象的属性时Visual Studio不会推断出正确的类型.我是lambda表达式的新手,甚至比TopShelf更新,所以我不确定我在做什么.

我在TopShelf文档中使用this page来启动我.它看起来很直接,所以我不确定我错过了什么.

更新的代码

using Autofac;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;

namespace KeithLink.Svc.Windows.OrderService2 {
class FooBar {
    public FooBar() { }

    public void Start() { }
    public void Stop() { }
}

class Program {
    static void Main(string[] args) {
        HostFactory.Run(x => {

            x.Service<FooBar>(s => {
                s.ConstructUsing(name => new OrderService());
                s.WhenStarted(os => os.Start());
                s.WhenStopped(os => os.Stop());
            });

            x.RunAsLocalSystem();

            x.SetDescription("some service description");
            x.SetServiceName("ServiceName");
            x.SetDisplayName("Service Display Name");
        });
    }
}
}

解决方法:

虽然VisualStudio的intellisense不会推断出正确的类型,但它仍然应该编译.我不知道topshelf正在做什么,但我记得上次我尝试使用它时遇到了这些问题.

标签:c,topshelf
来源: https://codeday.me/bug/20190612/1224534.html