对于坏头衔抱歉,真的不知道什么是正确的(如果你看到更合适的东西,请更改)。取决于.NET框架版本的相同方法但签名不同?
我有一个DLL文件,我使用基于WinRT
(或更确切地说,我使用它时,我建立一个Universal Windows 10
应用程序)的项目,我也用它来“普通”的桌面应用程序。但我的问题是,我使用System.Activator.CreateInstance<T>(typeof(T), true)
能够创建一些具有私有构造函数的类。这适用于桌面应用程序。但在WinRT上,方法CreateInstance<T>(...)
不采用相同的参数。解决这个问题的最佳方法是什么?
我可以在运行时检查我是否在WinRT上,或者它是否为“正常”应用程序?并根据使用适当的签名?
(很抱歉,如果我使用WinRT的错误等,我不得不抓硬什么就是什么与所有这些通用的应用程序而言飞来飞去的单词)
你为什么认为它有不同的签名? (我不是WinRT的专家,但这似乎不寻常。) –
我知道它有不同的签名。因为我打开了一个WinRT项目,并且只有3个签名可用。桌面应用程序有13个。我几周前还看到了一个评论(巧合),应该注意的是,情况就是如此(尽管如此,仍然无法找到它)。 :) – Whyser
我认为这种超载在WinRT中不受支持。您可以调用'CreateInstance(Type)',但是'CreateInstance(Type,bool)'不可用,可能是由于沙盒安全限制。 – Sean