我想做的事:使用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) 我似乎无法在文档或 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)
如果我忽略了某些内容,请务必指出正确的文档,谢谢!
由于我对Express并不熟悉,有人可以告诉我为什么v4.0.0不包括--sessions作为命令吗?
当我使用版本3.4.8时,支持此命令,但是当我获取最新版本时,我遇到了两个问题:
npm install express-generator我可能也会遗漏一些东西,这是Express团队故意分离的?
我正在编写一些代码来动态创建一些对象(未知类型),我很好奇为什么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# ×3
reflection ×2
asp.net-mvc ×1
autofac ×1
express ×1
generics ×1
json ×1
node.js ×1
npm ×1