【发布时间】:2011-08-07 17:20:26
【问题描述】:
我正在编写一个 url 缩短器应用程序,我还想使用 C# 创建一个控制台应用程序,以将 URL 推送到我也创建的 WCF 服务。
WCF 应用程序将缩短此 URI 上的 url;
http://example.com/shorten/http://exaple.com
所以我想要的就是这样。
我的控制台 exe 文件将位于 c:\dev 文件夹和 Windows 命令行中,我想这样做;
c:\dev>myapp -throw http://example.com
通过这种方法,我想与该服务交谈。谈话部分没有问题。但问题是我如何在命令行上提供这个 -throw 东西并获得响应并将该响应放在命令行上并提供一种方法将其复制到剪贴板。我在这里问太多了吗? :S 我不知道。
您能否指导我到某个地方我可以找到相关信息,或者您可以给我一个示例代码吗?
谢谢。
编辑: 我试过下面的代码;
class Program {
static void Main(string[] args) {
if (args[0] == "-throw") {
System.Windows.Forms.Clipboard.SetDataObject(args[1]);
Console.WriteLine(args[1] + " has been added to clipboard !");
Console.ReadLine();
}
}
}
我收到以下错误;
C:\Apps\ArgsTry\ArgsTry\bin\Debug>ArgsTry - 扔人
未处理的异常: System.Threading.ThreadStateException: 当前线程必须设置为单线程 OLE 之前的线程单元 (STA) 模式 可以拨打电话。确保您的 主函数具有 STAThreadAttribute 标在上面。在 System.Windows.Forms.Clipboard.SetDataObject(对象 数据,布尔副本,在 t32 retryTimes 中, Int32 重试延迟)在 System.Windows.Forms.Clipboard.SetDataObject(对象 数据)在 ArgsTry.Program.Main(String[] args) 在 c:\apps\ArgsTry\ArgsTry\Program.cs: 第 14 行
C:\Apps\ArgsTry\ArgsTry\bin\Debug>
【问题讨论】:
-
您是否研究过/愿意使用框架为您处理命令行参数?我是 CommandLineParser 的粉丝:link。它确实使处理传入的命令行参数变得容易得多。
标签: c# console console-application