我正在尝试创建一个包含整个桌面工作区的WPF窗口.在WinForms中,我通过获得所有界限的联盟来做到这一点System.Windows.Forms.Screen.AllScreens.
是否有相同的类型或其他机制来获取WPF中整个桌面的边界,还是需要使用WinForms类型?
我有一个产生各种一些代码Func<>使用委托System.Linq.Expressions和Expression.Lambda<Func<>>.Compile()等等,我想能够序列化生成的函数为供以后使用的组件.在过去,我已经使用System.Reflection.Emit做了一些事情,但是现在Linq表达式我宁愿不再去那条路了.
是否有一种机制可以将已编译的表达式或某种桥接从Expressions命名空间序列化到Emit命名空间?
编辑
上下文的一些背景:我正在研究一个查询引擎(主要是为了我自己的启发和享受).给定一个SQL语句,我想解析并将其转换为lambda函数,然后将其序列化为磁盘以供以后使用(并重复执行).
在伪代码我到这一点:
Func<IEnumerable<T>, IEnumerable<T1>> query = Query.Parse<T, T1>("Select field AS A, field1 AS B from T where T.field2 > 5");
Run Code Online (Sandbox Code Playgroud)
(其中字段,字段1和字段2是性能T型和甲和乙是属性类型T1.和我可以通过任何枚举<T>到query并取回和的枚举<T1>所述查询条件相匹配.
所以我想将序列化为query磁盘作为已经编译的程序集,所以在以后我可以加载它并评估不同的集合<T>而不解析和编译它.我正在想象一下:
AssemblyBuilder builder = new AssemblyBuilder(...);
ModuleBuilder module = builder.DefineDynamicModule(...);
TypeBuilder type = module.DefineType(...);
type.AddMethod(query); // <--- where this piece does not …Run Code Online (Sandbox Code Playgroud) 我正在使用一些C++/CLI代码(新语法)并尝试声明泛型类型,并希望将成员变量设置为默认值.
在C#中:
class Class<T>
{
T member = default(T);
}
Run Code Online (Sandbox Code Playgroud)
CLI中的等价物是什么?
generic<typename T> public ref class Class
{
public:
Class() : member(default(T)) // <-- no worky
{
}
private:
T member;
};
Run Code Online (Sandbox Code Playgroud) 我们的BI团队正在逐渐成长为喜欢Excel和Power BI中使用的Power Query ETL工具.功能语言M/PowerQuery具有很好的实用性,能够在PowerBI的上下文之外使用会很好.
是否有计划将"M"暴露为独立模块,可以像c#或PowerShell一样调用?
出于好奇心,我一直在寻找一套C#/ .net类来支持光纤/协同程序(win32版本)并且没有任何运气.
有人知道这样的野兽吗?
在Windows Phone 7页面中,我有以下控件:
<controls:Pivot x:Name="Pivoter" Title="{Binding Name}"
TitleTemplate="{StaticResource PivotTitleTemplate}"
HeaderTemplate="{StaticResource PivotHeaderTemplate}"
ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource DisplayItemDataTemplate}">
</controls:Pivot >
Run Code Online (Sandbox Code Playgroud)
使用此DataTemplate:
<DataTemplate x:Key="DisplayItemDataTemplate">
<Image Grid.Column="0" Stretch="Uniform"
Source="{Binding LargeImage, Converter={StaticResource UriBitmapConverter}}"/>
<StackPanel Grid.Column="1" Orientation="Vertical">
<HyperlinkButton NavigateUri="{Binding Uri}" Content="{Binding Uri}"/>
</StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
这ItemsSource是一个ObservableCollection.当页面显示时,它会创建所有页面,PivotItems但第一个项目不会被创建,除非我向前滚动并返回它.它在滚动列表中有一个条目但没有PivotItem控件.
如果我在Pivot Control的LoadingPivotItem事件中设置了一个断点,那么在第一次显示数据时不会调用它,但是当我滚动并返回到第一个项目时,它只会被击中.
是否有人看到过类似的Pivot控件行为并有解决方法?或者我做错了什么?
我有一个通用类型:
class DictionaryComparer<TKey, TValue> : IEqualityComparer<IDictionary<TKey, TValue>>
Run Code Online (Sandbox Code Playgroud)
还有一个工厂方法,它将(应该)为给定的字典类型创建此类的实例.
private static IEqualityComparer<T> CreateDictionaryComparer<T>()
{
Type def = typeof(DictionaryComparer<,>);
Debug.Assert(typeof(T).IsGenericType);
Debug.Assert(typeof(T).GetGenericArguments().Length == 2);
Type t = def.MakeGenericType(typeof(T).GetGenericArguments());
return (IEqualityComparer<T>)Activator.CreateInstance(t);
}
Run Code Online (Sandbox Code Playgroud)
剥去所有无关紧要的东西 - 即使这段代码也会引发同样的异常.
private static object CreateDictionaryComparer()
{
Type def = typeof(DictionaryComparer<,>);
Type t = def.MakeGenericType(new Type[] { typeof(String), typeof(object) });
return Activator.CreateInstance(t);
}
Run Code Online (Sandbox Code Playgroud)
Asserts传递所以我知道它T是通用的并且有两个通用参数.MakeGenericType然而,除了以下内容的线路:
提供的泛型参数的数量不等于泛型类型定义的arity.
参数名称:实例化
我过去做过这种事情,因为我的生活无法弄清楚为什么在这种情况下这不起作用.(加上我必须谷歌arity).
对于UWP应用程序,建议使用API密钥和秘密令牌等应用程序部署秘密的机制是什么?对于用户生成的身份验证令牌,PasswordVault很有意义,但我看不到将这些设置为应用程序部署的一部分的方法.到目前为止,我已将它们嵌入到应用程序中,这似乎并不"正确"或安全.
编辑
事件日志错误是这样的:
error 0x8007000B: The app manifest publisher name (CN=...)
must match the subject name of the signing certificate
(CN={19BE29DF-4812-4F2E-8FC1-A138B146946A}).
Run Code Online (Sandbox Code Playgroud)
现在看来下面的命令似乎有效.因此,当我看到这个时,无论是我无法识别的用户错误还是与机器状态有关的东西.与事件日志消息中的签名证书关联的guid不是证书管理器管理单元中显示的证书,这很奇怪.
原始问题
我正在尝试签署使用生成的UWP appx包MakeAppx.exe.pfx是使用https://msdn.microsoft.com/windows/uwp/porting/desktop-to-uwp-manual-conversion这些命令生成的开发人员代码签名证书.
C:\> MakeCert.exe -r -h 0 -n "CN=<publisher_name>" -eku 1.3.6.1.5.5.7.3.3 -pe -sv <my.pvk> <my.cer>
C:\> pvk2pfx.exe -pvk <my.pvk> -spc <my.cer> -pfx <my.pfx>
Run Code Online (Sandbox Code Playgroud)
私钥位于我受信任的根证书存储区中,并且在我使用Desktop App Converter从安装程序生成appx时工作.
我使用的命令行是:
signtool.exe sign -f <path to my pfx file> -fd SHA256 -v .\FishTank.appx
Run Code Online (Sandbox Code Playgroud)
但是SignTool错误的是:
The following certificate was selected:
Issued to: ...
Issued by: …Run Code Online (Sandbox Code Playgroud) signtool windows-store-apps appx desktop-app-converter desktop-bridge