小编JAM*_*EME的帖子

我可以使用泛型来推断已知类型的实际类型吗?

我想做的事:使用Activator动态创建一个对象(可以是任何类型)并将其传递给序列化JSON的方法.注意:我已经看过使用泛型扩展方法的无类型推断,但这并没有真正给我任何有关如何解决这个问题的有用信息.

编辑:使用.NET 3.5 Framework

问题:我收到的对象可能是一个数组(例如int []),当我使用泛型来键入接收到的对象时,我得到一个对象[]而不是int [].

代码示例:

class Program
{
    static void Main(string[] args)
    {
        object objArr = new int[0];
        int[] intArr = new int[0];
        string arrS = "[1,2]";

        object objThatIsObjectArray = Serialize(objArr, arrS);//I want this to evaluate as int[]
        object objThatIsIntArray = Serialize(intArr, arrS);//this evaluates as int[]

        Console.Read();
    }
    public static object Serialize<T>(T targetFieldForSerialization, string value)
    {
        return value.FromJson<T>();
    }

}

public static class JSONExtensions
{
    public static TType FromJson<TType>(this string json)
    {
        using (var ms …
Run Code Online (Sandbox Code Playgroud)

c# generics reflection serialization json

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

Autofac - 我是否需要在 MVC global.asax 中手动处理 IContainer?

我似乎无法在文档或 stackOverflow 中找到这个问题的答案(尽管我可能忽略了它)。我很好奇我是否应该手动处理 ContainerBuilder 提供的 IContainer?

这是来自 Remember.Web 的代码示例:

//etc..
IContainer container = builder.Build();//returns IDisposable instance
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
//etc..
Run Code Online (Sandbox Code Playgroud)

但我很好奇它是否应该是这样的:

public class MvcApplication : HttpApplication
{
    private IContainer container;//not necessary..?

    protected void Application_Start()
    {
        ///etc..
        this.container = builder.Build();//returns IDisposable instance
        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        //etc..
    }
    protected void Application_End()
    {
        container.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我忽略了某些内容,请务必指出正确的文档,谢谢!

c# asp.net-mvc autofac

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

Express v4.0.0不包括--sessions命令或cmd,但以前的版本

由于我对Express并不熟悉,有人可以告诉我为什么v4.0.0不包括--sessions作为命令吗?

当我使用版本3.4.8时,支持此命令,但是当我获取最新版本时,我遇到了两个问题:

  1. Express.cmd没有生成(我在Win8.1 x64上运行) - 因此我必须运行 npm install express-generator
  2. 没有包含对--sessions命令的支持

我可能也会遗漏一些东西,这是Express团队故意分离的?

node.js npm express

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

为什么Assembly和Activator对CreateInstance的行为有所不同

我正在编写一些代码来动态创建一些对象(未知类型),我很好奇为什么Activator能够生成类型,但是Assembly不能.这是一个代码示例:

class Program
{
    static void Main(string[] args)
    {
        Type t = typeof (int);
        object notAnInt = Assembly.GetExecutingAssembly().CreateInstance(t.FullName);//does not work
        object actualInt = Activator.CreateInstance(t);//works

        Console.WriteLine(notAnInt);
        Console.WriteLine(actualInt);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我想象他们应该能够创建一个int实例时,为什么这两个表现不同?

c# reflection

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

标签 统计

c# ×3

reflection ×2

asp.net-mvc ×1

autofac ×1

express ×1

generics ×1

json ×1

node.js ×1

npm ×1

serialization ×1