小编Joh*_*ers的帖子

在单独的程序中将控制台输出重定向到文本框

我正在开发一个Windows窗体应用程序,它要求我调用一个单独的程序来执行任务.该程序是一个控制台应用程序,我需要将标准输出从控制台重定向到我的程序中的TextBox.

从我的应用程序执行程序没有问题,但我不知道如何将输出重定向到我的应用程序.我需要在程序使用事件运行时捕获输出.

在我的应用程序停止并且文本以随机间隔不断变化之前,控制台程序并不意味着停止运行.我试图做的只是从控制台挂钩输出以触发事件处理程序,然后可以使用它来更新TextBox.

我使用C#编写程序代码并使用.NET框架进行开发.原始应用程序不是.NET程序.

编辑:这是我正在尝试做的示例代码.在我的最终应用程序中,我将用代码替换Console.WriteLine来更新TextBox.我试图在我的事件处理程序中设置断点,甚至没有达到.

    void Method()
    {
        var p = new Process();
        var path = @"C:\ConsoleApp.exe";

        p.StartInfo.FileName = path;
        p.StartInfo.UseShellExecute = false;
        p.OutputDataReceived += p_OutputDataReceived;

        p.Start();
    }

    static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
    {
        Console.WriteLine(">>> {0}", e.Data);
    }
Run Code Online (Sandbox Code Playgroud)

.net c# console textbox winforms

49
推荐指数
2
解决办法
5万
查看次数

我对WCF有什么看法?

我在MS技术方面的开发时间比我在此阶段要记住的时间长.当.NET到达现场时,我认为它们触及了头部,每次迭代和版本我认为他们的技术越来越强大,并期待每次发布.

但是,由于去年必须与WCF合作,我必须说我发现这项技术非常难以使用和理解.最初它非常吸引人但是当你开始深入了解它时,配置是一场噩梦,必须覆盖消息大小的行为,消息中包含的对象数量,安全模型的复杂性,出现故障时处理代理以及最终回到定义代码而不是XML中的接口.

它只是没有开箱即用,我认为应该.我们在测试自己时或者当我们的产品在现场时,我们发现了上述所有问题.

我确实理解这一切背后的基本原理,但肯定他们可以提出更简单的实现机制.

我想我要问的是,

  • 我是以错误的方式看待WCF吗?
  • 它对替代品有什么优势?
  • 在什么情况下我应该选择使用WCF?

OK伙计们,对于延迟回复感到抱歉,工作确实有一个令人讨厌的习惯,有时会妨碍:)

一些说明我对WCF的主要描述我想到了以下几个方面虽然它开箱即用,但你的左侧有一些重大的惊喜.如上所述,基本事物在被覆盖之前是受限制的

  1. 字符串的大小可以通过不能超过8K
  2. 可以在单个消息中传递的对象数受到限制
  3. 代理不会自动从故障中恢复
  4. 配置的数量虽然有好处,但要了解所有内容以及使用什么以及在哪种情况下难以理解.特别是在具有不同安全要求的现场部署软件时等.在谈论配置时,我们不得不在后端数据库中隐藏我们的许多内容,因为现场的安全和网络人员试图在不理解的情况下更改配置文件中的内容它.
  5. 保持接口的配置在代码中,而不是移动到XML中显式定义的接口,几乎任何东西都可以发布和使用它们.我知道我们可以从程序集中导出XML,但它充满了垃圾,并且某些代码生成器会阻塞它.

我知道世界在继续前进,我已经多次(最近22年来我一直在开发)并且正在积极地使用WCF,所以不要误解我的意思,我明白它的用途是什么它在哪里.

我认为应该有更简单的配置/部署选项,更容易的设置和更好的配置管理(SQL配置提供程序可能,而不仅仅是web.config/app.config文件).

c# wcf web-services

49
推荐指数
4
解决办法
5099
查看次数

在C#中是否存在if语句?

我在C#中遇到了以下代码.

if(condition0) statement0;
else if(condition1) statement1;
else if(condition2) statement2;
else if(condition3) statement3;
...
else if(conditionN) statementN;
else lastStatement;
Run Code Online (Sandbox Code Playgroud)

我的一些同事告诉我,这是一个else if声明.但是,我确信它实际上是一个多层嵌套if-else语句.我知道没有分隔符{},一个if或多个语句中允许一个语句else.所以在这种情况下,我认为它将等同于以下代码.

if(condition0) 
  statement0;
else
  if(condition1)
    statement1;
  else
    if(condition2)
      statement2;
    else
      if(condition3)
        statement3;
      else
      ...
Run Code Online (Sandbox Code Playgroud)

请注意,我改变的只是空白.这种缩进是有效的,因为当没有分隔符时,每个缩进else都会返回到最近的if语句.

任何人都可以澄清else if第一个例子中的格式是否被编译器if-else与第二个例子中的嵌套格式区别对待?

.net c# if-statement

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

使用带有两个参数的函数的javascript映射

我知道我可以用map以下方式使用一个变量的函数:

var squarefunc = function(x) {
    return x*x;
};
values = [1,2,3,4]
values.map(squarefunc) // returns [1,4,9,16]
Run Code Online (Sandbox Code Playgroud)

如何使用map以下功能:

var squarefuncwithadjustment = function(x, adjustment) {
    return (x*x + adjustment);
}
Run Code Online (Sandbox Code Playgroud)

其中,我想adjustment在调用map时手动输入参数值,比如说adjustment=2,并且x从数组中获取值values.

javascript

49
推荐指数
5
解决办法
5万
查看次数

关于在使用Entity框架时将业务逻辑放在何处的困惑

我刚刚开始使用Entity框架,我对业务层中通常的类如何适应实体框架创建的实体感到困惑.

使用经典的ADO.NET时,我会有一个名为Customer的类,然后是另一个名为DALCustomer的类来处理数据库交互,在这个结构中,我会把代码放到计算,过滤和删除DAL的实例中.客户在Customer类中保存,更新和删除.

使用Entity Framework,如果您有一个名为Customer的表,Entity框架会创建一个名为Customer的实体,这就是我的困惑开始的地方,这个实体是否消除了业务层中对Customer的需求?因此,实质上通常在业务层中的所有字段和方法都在实体框架生成的实体中?或者,如果一个类仍然存在于名为CustomerBL的业务层中,那么它仍然包含完成计算,过滤所需的业务逻辑所需的字段和方法,并且仍然需要声明处理数据访问的EF DAL实例?

如果应该有一个业务类,在这种情况下是CustomerBL,另外还有一个问题,如果客户实体中创建的字段在CustomerBL中重新创建,或者应该在CustomerBL中声明Customer实体的实例,那么就会有不需要在2个位置声明字段?

c# entity-framework

49
推荐指数
3
解决办法
2万
查看次数

如何为使用Axis 1.4 Web服务的C#Web服务客户端添加自定义Http Header

我正在尝试在c#中编写一个Web服务客户端,其Web服务是Java Axis 1.4.Axis服务需要HTTP标头中的Authorization:Basic Base64EncodedToken标头值.我找不到一种方法来在visual studio.net中以不同的方式设置这个头文件,就像普通的WSDL生成引用一样,也不是WSE3.0

我不能使用WCF,因为项目是使用.net 2.0开发的.

有没有办法做到这一点?

c# axis wsdl web-services

48
推荐指数
5
解决办法
17万
查看次数

JSON还是SOAP(XML)?

我正在为公司开发一个新的应用程序.该应用程序必须与iPhone交换数据.

公司服务器端使用.NET框架.

例如:特定CustomerNumber的类"Customer"(名称,地址等)应首先从服务器下载到iphone,存储在本地,然后上传回应用更改(并将其提供给其他人).并发应该不是问题(至少在这个时候......)

无论如何,我必须开发服务器端(webservice或其他)和iPhone应用程序.

我可以自由地确定最佳方法(这是应用程序"第一",因此它将成为未来的"标准").

那么,你建议我什么?

使用SOAP Web服务(XML解析等..)或用户JSON?(它看起来更轻......)我是否清楚如何使用SOAP"上传"数据(很长时间来编写xml肥皂信封......我会避免)但是如何使用JSON做同样的事情呢?

应用程序需要使用日期值(例如:last_visit_date等..)Json中的日期怎么样?

iphone json soap objective-c

48
推荐指数
4
解决办法
4万
查看次数

如何让.NET的Path.Combine将正斜杠转换为反斜杠?

我正在使用Path.Combine:

Path.Combine("test1/test2", "test3\\test4");
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

test1/test2\test3\test4
Run Code Online (Sandbox Code Playgroud)

注意正斜杠如何不转换为反斜杠.我知道我可以做string.Replace改变它,但是有更好的方法吗?

.net c#

48
推荐指数
3
解决办法
5万
查看次数

为什么我不能预先分配一个hashset <T>

为什么我不能预先分配hashset<T>

有时我可能会添加很多元素,我想消除调整大小.

c# hashset

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

静态范围多用户ASP.NET Web应用程序中的变量

静态变量是否在用户会话中保留其值?

我有一个ASP.NET Web应用程序,我有两个按钮.一个用于设置静态变量值,另一个用于显示静态变量值.

namespace WebApplication1
{   

public partial class WebForm1 : System.Web.UI.Page
{
    public static int customerID;

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void ButtonSetCustomerID_Click(object sender, EventArgs e)
    {
        customerID = Convert.ToInt32(TextBox1.Text);
    }

    protected void ButtonGetCustomerID_Click(object sender, EventArgs e)
    {
        Label1.Text = Convert.ToString(customerID);
    }
}

}
Run Code Online (Sandbox Code Playgroud)

虽然这适用于单用户环境,但如果有两个用户同时从两台计算机登录,会发生什么情况,用户1将值设置为100,然后用户2将值设置为200.之后用户1调用"获取值"按钮.他认为什么是价值?

c# asp.net static

47
推荐指数
2
解决办法
5万
查看次数