我有基础课 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)
我们创建类型实例B并Method在其上调用的示例,我们期望它将是 …
我想知道如何在Android虚拟设备上更新主机文件?每次我重新打开模拟器时,它都会显示defaul hosts文件,所以我每次都会拉出主机文件.
我现在应该做什么:
但是下次启动模拟器时会出现默认主机文件.如何只更改一次hosts文件?
我们开始使用新的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-host和wrong-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) 我正在使用MassTransit库InMemoryMessageBus,我想知道如何获取队列中的消息数量(总线的大小)。
是否有任何常见的做法或规则来避免程序中的死锁?还有来自CLR的任何支持或来自语言/框架的任何工具来处理这种情况吗?
c# ×4
.net ×2
android ×1
deadlock ×1
hosts ×1
masstransit ×1
mongodb ×1
overloading ×1
overriding ×1