小编Gre*_*ndy的帖子

如何从json创建一个c#对象

我从Web服务得到以下响应:

{
  "data":{
    "foo.hugo.info": {
      "path": "logon.cgi",
      "minVersion": 1,
      "maxVersion": 2
    },
    "foo.Fritz.Task": {
      "path": "Fritz/process.cgi",
      "minVersion": 1,
      "maxVersion": 1
    }
  },
  "success": true
}
Run Code Online (Sandbox Code Playgroud)

json-object必须如何反序列化?

或者是否有其他方法来获取属性的值?

.net c# json

10
推荐指数
2
解决办法
242
查看次数

来自EventHandler的Console.Writeline

我写了一个简单的异步TCP-Server - 效果很好.但是现在我想在Console-Testprogram上输出收到的数据.问题是,这不起作用!如果我将MainThread连接到EventHandler,程序什么都不做.Debug显示调用了sc05Server_DataAvailable,但后来什么也没发生.该计划仍然响应.

这里的代码:

private void ReadCallback(IAsyncResult asyncResult)
{
    Sc05BdClient sc05BdClient = asyncResult.AsyncState as Sc05BdClient;
    if (sc05BdClient == null) return;
    NetworkStream networkStream = sc05BdClient.NetworkStream;
    int read = networkStream.EndRead(asyncResult);

    if (read == 0)
    {
        lock (clients)
        {
            clients.Remove(sc05BdClient);
            return;
        }
    }

    string data = Encoding.GetString(sc05BdClient.Buffer, 0, read);
    System.Diagnostics.Debug.Print(data);
    OnDataAvailable(this, new DataAvailableEventArgs(data));  <---- here Handler is called
    networkStream.BeginRead(sc05BdClient.Buffer, 0, sc05BdClient.Buffer.Length, ReadCallback, sc05BdClient);
}


public event EventHandler<DataAvailableEventArgs> DataAvailable;

protected virtual void OnDataAvailable(object sender, DataAvailableEventArgs e)
{
    EventHandler<DataAvailableEventArgs> handler = DataAvailable;
    if (handler != …
Run Code Online (Sandbox Code Playgroud)

c# windows console-application

8
推荐指数
1
解决办法
1173
查看次数

RabbitMQ向每个消费者发送相同的消息

我已经从RabbitMQ网站实现了这个例子: RabbitMQ示例

我已将其扩展为具有带按钮的应用程序以发送消息.现在我在两台不同的计算机上启动了两个用户 当我发送消息时,第一条消息被发送到computer1,然后第二条消息被发送到computer2,thrid发送到computer1,依此类推.

为什么会这样,以及如何更改将每条消息发送给每个消费者的行为?

rabbitmq

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

Console.ReadKey()不起作用

请看原始的Microsoft示例.

在第二个示例中,我们找到以下代码:

// The simplest UI thread ever invented.
Task.Run(() =>
{
    if (Console.ReadKey().KeyChar == 'c')
        cts.Cancel();
});
Run Code Online (Sandbox Code Playgroud)

(运行此代码需要完整代码:)

static int inputs = 2000;
static void Main(string[] args)
{
    // The token source for issuing the cancelation request.
    CancellationTokenSource cts = new CancellationTokenSource();

    // A blocking collection that can hold no more than 100 items at a time.
    BlockingCollection<int> numberCollection = new BlockingCollection<int>(100);

    // Set console buffer to hold our prodigious output.
    //Console.SetBufferSize(80, 2000);

    // The simplest UI …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

继承类属性中的属性差异

我有两个班:ElementDisplay.

现在这两个类都有许多共同的属性,所以我考虑从一个基类继承.

现在出现了问题.对于序列化,Element类应该[XmlIgnore]在每个属性之前具有,但Display不是类.

我该怎么处理?

旧:

public class Element
{
    [Browsable(false)]
    [XmlIgnore]
    public Brush BackgroundBrush { get; set }
}

public class Display
{
    public Brush BackgroundBrush { get; set }
}
Run Code Online (Sandbox Code Playgroud)

新:

public class DispBase
{
    public Brush BackgroundBrush { get; set; }
}

public class Element : DispBase
{
    // what to write here, to achieve XmlIgnore and Browsable(false)?
}

public class Display : DispBase
{
}
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
1
解决办法
54
查看次数

这两个 await 调用有什么区别

我有以下代码:

async Task Main()
{
    Stopwatch sw = new Stopwatch();

    // Variante 1
    sw.Start();
    var m1 = await Task1();
    var m2 = await Task2();
    var m3 = await Task3();
    Console.WriteLine(m1);
    Console.WriteLine(m2);
    Console.WriteLine(m3);
    sw.Stop();
    Console.WriteLine(sw.ElapsedMilliseconds);

    // Variante 2
    sw.Restart();
    var t1 = Task1();
    var t2 = Task2();
    var t3 = Task3();
    m1 = await t1;
    m2 = await t2;
    m3 = await t3;
    Console.WriteLine(m1);
    Console.WriteLine(m2);
    Console.WriteLine(m3);
    sw.Stop();
    Console.WriteLine(sw.ElapsedMilliseconds);
}

// Define other methods, classes and namespaces here
public async Task<string> Task1() …
Run Code Online (Sandbox Code Playgroud)

.net c# async-await

2
推荐指数
1
解决办法
129
查看次数

只是'偷看'剪贴板

有没有办法从剪贴板获取数据但不删除它,所以另一种方法或应用程序可以得到它?

我有第三方组件,我可以覆盖粘贴方法,但我无法改变base.Paste()正在做的事情.所以我会在调用之前尝试保存剪贴板数据,然后再base.Paste()对数据执行一些操作.

c# wpf

0
推荐指数
1
解决办法
115
查看次数

标签 统计

c# ×6

.net ×3

async-await ×1

console-application ×1

json ×1

rabbitmq ×1

windows ×1

wpf ×1