我从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必须如何反序列化?
或者是否有其他方法来获取属性的值?
我写了一个简单的异步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) 我已经从RabbitMQ网站实现了这个例子: RabbitMQ示例
我已将其扩展为具有带按钮的应用程序以发送消息.现在我在两台不同的计算机上启动了两个用户 当我发送消息时,第一条消息被发送到computer1,然后第二条消息被发送到computer2,thrid发送到computer1,依此类推.
为什么会这样,以及如何更改将每条消息发送给每个消费者的行为?
在第二个示例中,我们找到以下代码:
// 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) 我有两个班:Element和Display.
现在这两个类都有许多共同的属性,所以我考虑从一个基类继承.
现在出现了问题.对于序列化,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) 我有以下代码:
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) 有没有办法从剪贴板获取数据但不删除它,所以另一种方法或应用程序可以得到它?
我有第三方组件,我可以覆盖粘贴方法,但我无法改变base.Paste()正在做的事情.所以我会在调用之前尝试保存剪贴板数据,然后再base.Paste()对数据执行一些操作.