小编use*_*301的帖子

为什么重载方法的优先级低于实例方法

我有基础课 A

public class A
{
    public virtual void Method(A parameter)
    {
        Console.WriteLine(MethodBase.GetCurrentMethod());
    }
    public virtual void Method(B parameter)
    {
        Console.WriteLine(MethodBase.GetCurrentMethod());
    }
}
Run Code Online (Sandbox Code Playgroud)

Inhereted B

public class B : A
{
    public virtual void Method(object parameter)
    {
        Console.WriteLine(MethodBase.GetCurrentMethod());
    }

    public override void Method(A parameter)
    {
        Console.WriteLine(MethodBase.GetCurrentMethod());
    }

    public override void Method(B parameter)
    {
        Console.WriteLine(MethodBase.GetCurrentMethod());
    }
}
Run Code Online (Sandbox Code Playgroud)

S带扩展方法的静态类

public static class S
{
    public static void Method(this B instance, B parameter)
    {
        Console.WriteLine(MethodBase.GetCurrentMethod());
    }
}
Run Code Online (Sandbox Code Playgroud)

我们创建类型实例BMethod在其上调用的示例,我们期望它将是 …

.net c# overriding overloading

11
推荐指数
1
解决办法
907
查看次数

Android模拟器托管文件

我想知道如何在Android虚拟设备上更新主机文件?每次我重新打开模拟器时,它都会显示defaul hosts文件,所以我每次都会拉出主机文件.

我现在应该做什么:

  1. emulator.exe -avd%avd_name%-partition-size 256 -gpu on
  2. adb.exe等待设备
  3. adb.exe重新安装
  4. adb.exe push%avd_root_dir%\ hosts/system/etc.

但是下次启动模拟器时会出现默认主机文件.如何只更改一次hosts文件?

android hosts android-virtual-device

9
推荐指数
1
解决办法
2174
查看次数

如何在C#MongoDB驱动程序v2.0中获取连接状态?

我们开始使用新的MongoDB驱动程序v2,我们无法理解我们是否连接到数据库.

我们的存储库代码

var client = new MongoClient("mongodb://{wrong-host}:{wrong-port}/{dbbname}");
var database = client.GetDatabase(url.DatabaseName);
Run Code Online (Sandbox Code Playgroud)

wrong-hostwrong-port无效的值.

首先,我们认为如果没有人正在监听指定的地址但驱动程序没有抛出异常将被引发.

下一步是在db上调用方法:

var dbs = client.ListDatabasesAsync().Result.ToListAsync().Result;
Run Code Online (Sandbox Code Playgroud)

在这里,我们有freez 30秒而不是例外.我们不适合等待30秒来了解我们是否联系.

System.TimeoutException:使用CompositeServerSelector选择服务器30000ms后发生超时{Selectors = ReadPreferenceServerSelector {ReadPreference = {Mode = Primary,TagSets = []}},LatencyLimitingServerSelector {AllowedLatencyRange = 00:00:00.0150000}}.集群状态的客户端视图是{ClusterId:"1",类型:"未知",状态:"已断开连接",服务器:[{ServerId:"{ClusterId:1,EndPoint:"****"}",EndPoint: "****",状态:"Disconnected",键入:"Unknown",HeartbeatException:"MongoDB.Driver.MongoConnectionException:打开与服务器的连接时发生异常.---> System.Net.Sockets.SocketException :无法建立连接,因为目标计算机主动拒绝它******

最后,我们尝试设置不同的超时但没有任何改变.

var client = new MongoClient(new MongoClientSettings
  { 
    SocketTimeout = TimeSpan.FromSeconds(1),
    MaxConnectionIdleTime = TimeSpan.FromSeconds(1),
    MaxConnectionLifeTime = TimeSpan.FromSeconds(1),
    ConnectTimeout = TimeSpan.FromSeconds(1),
    Servers = url.Servers
  });
Run Code Online (Sandbox Code Playgroud)

所以问题是如何在短时间间隔〜(1-2)秒内知道我们是否连接到mongo?

[UPD]

我们目前的解决方案是

private IMongoDatabase Connect(string connectionString, TimeSpan timeout)
{
  var url = MongoUrl.Create(connectionString); …
Run Code Online (Sandbox Code Playgroud)

c# mongodb mongodb.driver

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

如何获取 MassTransit IBus 的大小(消息数量)?

我正在使用MassTransitInMemoryMessageBus,我想知道如何获取队列中的消息数量(总线的大小)。

c# masstransit

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

如何避免.NET中的死锁

是否有任何常见的做法或规则来避免程序中的死锁?还有来自CLR的任何支持或来自语言/框架的任何工具来处理这种情况吗?

.net c# multithreading deadlock

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