小编Sha*_*ler的帖子

signalR和CustomTypeConverter

我想序列化派生类型,如此处所述,但对于signalR,我想实现从JsonConverter派生的自定义转换器

我将它添加到signalR中,如下所示

var serializer = GlobalHost.DependencyResolver.GetService(typeof(JsonSerializer)) as JsonSerializer;
var i = new CustomTypeConverter();
serializer.Converters.Add(i);
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
Run Code Online (Sandbox Code Playgroud)

public override bool CanConvert(Type objectType) 我调试此函数时应该处理哪些类型我没有看到我认为是我的解决方案的一部分类型

c# signalr

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

更改时间戳类型的列

我想更新一个空表,它有一个类型为timebin的列到varbinary(8)

我使用了以下命令

ALTER TABLE Notification  ALTER COLUMN RowRevisionID varbinary(8) 
Run Code Online (Sandbox Code Playgroud)

我得到了一个错误

无法更改列'RowRevisionID',因为它是'timestamp'.

如何更改时间戳列类型?

我不希望删除列添加一个新的,因为这将在最后创建一个列,并且我希望保留列顺序以在INSERT INTO中使用此表

sql sql-server sql-server-2012

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

Backporting C#插值字符串运算符$

我有一些代码我想在旧版本的c#中重用

List<string> programId = new List<string>(){"1","2","3"}
string.Join(",", Id.Select(x => $"'{x}'"))
Run Code Online (Sandbox Code Playgroud)

如何将$运算符转换为旧版本的C#?

c# string c#-4.0 c#-6.0

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

SQL Server Management Studio - 运行命令的历史记录

我之前已经更改了一个表,添加了一个列并修改了一个存储过程.

我不记得究竟哪个表和哪个存储过程,是否有一些登录sql管理工作室有关在特定数据库中进行了哪些更改?

我已经尝试了这里描述的内容如何在SQL Server Management Studio中查看查询历史记录,但我没有找到对数据库所做的更改

sql-server ssms

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

使某个URL仅在48小时内有效

我需要使某个URL仅在48小时内有效,此链接在服务器上生成并通过电子邮件发送给客户端.

我想做的是在服务器上嵌入编码的时间戳.

  • 这个时间戳当然需要编码,我不希望我的客户端有解码功能.
  • 另一个想法是使用公共加密,其中密钥是用户名

这种情况的最佳做法是什么?

c# asp.net

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

Stringbuilder从多个数组中追加表单

我有一个StringBuilder,我试图从多个列表中追加参数,如下所示:

var sb = new StringBuilder();
var list1 = new List<string>() { "a", "b", "c" }
var list2 = new List<string>() { "d", "e" }
sb.AppendFormat(" {0}, {1}, {2}, {3}, {4} ", list1, list2);
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

索引(从零开始)必须大于或等于零且小于参数列表的大小.

我做的工作就是创建一个临时列表

var temp = new List<string>();
temp.AddRange(list1);
temp.AddRange(list2);
sb.AppendFormat(" {0}, {1} ,{2}  ,{3}  ,{4} ", new List().Add);
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

c# string stringbuilder string-formatting

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

使用简单的类名从Assembly加载Type

我尝试通过反射加载一个类型

我成功找到了包含类型的程序集:

 var assembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(t => t.GetTypes().Any(g => g.Name == "MyClass"));
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从程序集中加载类型时:

Type t = assembly.GetType("MyClass");
Run Code Online (Sandbox Code Playgroud)

然后t是null,我不想使用完整的限定名称加载类型,只是类名.

c# reflection

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

IOC container as mapping resolver

I want to use an IOC container preferably unity as a resolver function lookup

This what I have

 class ParmaterType {}

 class Monkey : ParmaterType {}
 class Handler {virtual void HandleMessage(){}}
 class MonkeyHandler : Handler {}

 class Main
 {
    Dictionary<Type, Type> _Mapper= new> Dictionary<Type, Type >()
    {  { typeof(Monkey) , typeof(MonkeyHandler) } }; 

   public void OnMessage(ParmaterType  type)
    {  
       Handler instance = (Handler)Activator.CreateInstance(_Mapper[type]); 
       instance.HandleMessage(type); 
     } 
 }
Run Code Online (Sandbox Code Playgroud)

and what i want is something like this :

 IocContainer.Register(typeof(Monkey), typeof(MonkeyHandler ))

 public void OnMessage(ParmaterType …
Run Code Online (Sandbox Code Playgroud)

c# ioc-container unity-container

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

ReflectionTypeLoadException 无法加载一种或多种请求的类型

我有以下代码,它加载了我的项目引用的所有组件以及它们使用的所有引用

var types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(t => t.GetTypes())
                        .Where(t => t.IsClass && !t.IsAbstract && (typeof (MyType).IsAssignableFrom(t)));


foreach (var type in types.Where(type => typeof (MyType).IsAssignableFrom(type)))
                {... do something ...}
Run Code Online (Sandbox Code Playgroud)

在我的开发箱上这按预期工作,在其他环境中这会导致异常

System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

为什么会抛出异常?是否可以重构我的代码以使其忽略异常?

c# reflection unit-testing appdomain

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

等待任务和等待Task.WhenAll之间的区别

使用await多个等待任务与等待所有任务完成时有什么区别.我的理解是方案2在性能方面更好,因为asyncTask1和asyncTask2都是并行执行的.

方案1:

async Task Task()
{
   await asyncTask1();
   await asyncTask2();
}
Run Code Online (Sandbox Code Playgroud)

方案2:

async Task Task()
{
    t1 = asyncTask1();
    t2 =  asyncTask2();
    await Task.WhenAll(createWorkflowtask, getTaskWorkflowTask);
}
Run Code Online (Sandbox Code Playgroud)

c# asynchronous task-parallel-library async-await

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

C#泛型复制构造函数

我有一个泛型类,我想实现一个复制构造函数

public abstract class  BaseClass<T>
{
     protected T Data { get; set; }
     protected BaseClass(T other)
     {
          this.Data = other.Data;
     }

}
Run Code Online (Sandbox Code Playgroud)

我收到了编译错误 other

没有字段名称Data.

我曾经想过使用动态,所以构造函数签名将是BaseClass(动态其他),还有其他方法吗?

c# generics

-1
推荐指数
1
解决办法
582
查看次数