小编adr*_*nks的帖子

在泛型参数上有什么用途?

它是有效的(即它编译并运行)将属性放在类或方法的泛型参数上:

public class MyClass<[My] T>
{
    private void MyMethod<[My] T>()
    {}
}

public class MyAttribute : Attribute
{}
Run Code Online (Sandbox Code Playgroud)

我从来没有见过这种情况,并且正在努力想出一个你为什么要这么做的理由.

它只是语言规范的怪癖/副作用,还是有一个有效/有用的理由将属性置于这个位置?

.net c# generics attributes

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

在ios上安装Firebase模块

我按照所有说明集成新firebase版本ios:

  1. 我下载了该文件GoogleService-Info.plist并将其包含在项目中.

  2. 我用cocoapods安装了框架

问题出在这一行:

@import Firebase;
Run Code Online (Sandbox Code Playgroud)

Xcode打印此错误:

"未找到模块Firebase"

解决办法是什么?

我的代码:

#import "AppDelegate.h"

@import Firebase

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [FIRApp configure];

    // Override point for customization after application launch.
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

ios firebase

16
推荐指数
4
解决办法
2万
查看次数

在C#中处理UAC的正确方法

我有一个应用程序(Windows服务)安装在Program Files文件夹中的目录中.除此应用程序外,还有另一个WinForms应用程序,用于配置服务(以及其他内容).在进行配置时,它会将更改保存到与服务一起存在的配置文件中.

在Vista/Win7上运行时,UAC会阻止用户保存到配置文件.我想做的是:

  • 将屏蔽图标放在用于配置的菜单项旁边
  • 选择此项时提示输入UAC权限
  • 仅在需要它的操作系统上显示图标/提示
  • 仅在需要权限时显示图标/提示符(例如,如果应用程序安装在不需要UAC权限的地方)

我真的不想以管理员身份运行整个应用程序,因为它还用于不需要UAC权限的其他目的(因此设置应用程序清单文件不是正确的解决方案).我也假设(纠正我,如果我错了),一旦授予UAC权限,我的现有流程就无法执行操作,我需要启动一个新流程.

我怎样才能做到最好?

.net c# uac

15
推荐指数
2
解决办法
2万
查看次数

为什么我在新的MVC4项目中遇到编译错误?

我一直无法找到答案并且整个周末一直在网上搜索,所以我希望也许你可以帮我解决这个问题.

使用Visual Studio 2012时,我创建了一个新的MVC4 Web应用程序项目并获得了一些编译错误.

这是我的问题:

  1. 我使用Visual Studio 2012创建了一个新的MVC4 Web应用程序,我选择了Internet Application并将其设置为使用RAZOR Engine.

  2. 我转到Application Properties,在Application选项卡下,我将Target Framework从.NET Framework 4.5更改为.NET Framework 4.

  3. 构建产生以下错误:

    错误1找不到类型名称"TableAttribute".此类型已转发到程序集'System.ComponentModel.DataAnnotations,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'.考虑添加对该程序集的引用.c:\ users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels.cs 21 6 MvcApplication1

    错误2找不到类型或命名空间名称"Table"(您是否缺少using指令或程序集引用?)c:\ users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 21 6 MvcApplication1

    错误3找不到类型或命名空间名称"DatabaseGeneratedAttributeAttribute"(您是否缺少using指令或程序集引用?)c:\ users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 25 10 MvcApplication1

    错误4找不到类型名称"DatabaseGeneratedAttribute".此类型已转发到程序集'System.ComponentModel.DataAnnotations,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'.考虑添加对该程序集的引用.c:\ users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels.cs 25 10 MvcApplication1

    错误5找不到类型或命名空间名称'CompareAttribute'(您是否缺少using指令或程序集引用?)c:\ users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 54 10 MvcApplication1

    错误6找不到类型或命名空间名称"比较"(您是否缺少using指令或程序集引用?)c:\ users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 54 10 MvcApplication1

    错误7找不到类型或命名空间名称'CompareAttribute'(您是否缺少using指令或程序集引用?)c:\ users\saad\documents\visual …

.net-4.0 asp.net-mvc-4 visual-studio-2012

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

C#自定义属性命名

我有一个自定义属性类,我定义为:

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
public sealed class MyCustomAttribute : System.Attribute
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

来自微软网站:

按照惯例,属性类的名称以"属性"一词结尾.虽然不是必需的,但建议使用此约定以提高可读性.应用该属性时,包含单词Attribute是可选的.

因此,该属性可以被任何一个使用

[MyCustom()]
Run Code Online (Sandbox Code Playgroud)

要么

[MyCustomAttribute()]
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果有人使用名称的缩写版本与全名有任何问题吗?我正在运行4.0框架.

谢谢!

.net c# attributes visual-studio-2010

11
推荐指数
2
解决办法
2803
查看次数

为什么Visual Studio会复制我的菜单和按钮?重新安装和配置文件擦除后仍然存在

为什么Visual Studio会复制我的菜单和按钮?重新安装和配置文件擦除后,这种情况仍然存在.如果我这样做/resetsettings会起作用,但下次加载会有同样的问题.

视觉工作室

visual-studio-2010 visual-studio

11
推荐指数
2
解决办法
3618
查看次数

使用WPF中文本框的KeyDown事件捕获Ctrl-X

我试图在用户按下时触发事件ctrl- x使用KeyDown事件.这工作正常ctrl- D但是当事件不会触发ctrl- x被按下.我猜这是因为ctrl- x是"剪切"命令.ctrl- X按下后是否有任何方法可以触发事件?

private void textBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl))
    {
        switch (e.Key)
        {
            case Key.D:
                //handle D key
                break;
            case Key.X:
                //handle X key
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf

11
推荐指数
2
解决办法
2万
查看次数

NUnit GUI Runner和Apartment State

如何在NUnit GUI运行器中设置单元状态?我正在尝试使用WatiN运行单个NUnit测试,我收到消息:

MyNamespace.LoginTests.CanLogin:
System.Threading.ThreadStateException:CurrentThread需要将它的ApartmentState设置为ApartmentState.STA才能自动化Internet Explorer.

.net testing nunit watin apartment-state

10
推荐指数
2
解决办法
3278
查看次数

WPF控件不在WinForms应用程序中的ElementHost中显示

我有一个WPF控件的问题,我试图在WinForms应用程序中的ElementHost中托管.该控件是一个无形的自定义控件,我最初是在一个单独的测试项目中开发的,它是一个WPF应用程序.在那里它显然工作正常,但在我的WinForms应用程序中,我得到的是一个空白的灰色框,其中显示ElementHost.

这是我用于创建,填充和添加ElementHost到父Control的C#代码:

// This is my WPF control
m_TabHostPanel  = new TabHostPanel();
m_ElementHost  = new ElementHost
                 {
                     Child = m_TabHostPanel,
                     Dock = DockStyle.Top,
                     Height = 34
                 };
this.Controls.Add( m_ElementHost );
Run Code Online (Sandbox Code Playgroud)

父控件包含在运行时根据需要添加和删除的其他WinForms控件.这些都是单独托管,其Dock设置为DockStyle.Fill.因此,每次添加一个时,我都会将ElementHost发送到Z-order的后面,以确保它正确呈现:

m_ElementHost.SendToBack();
Run Code Online (Sandbox Code Playgroud)

因此,我知道我没有遇到空域问题,或类似的问题.

我想知道的一件事是这样的:在原始项目中,我所有无外观控件的样式被合并到App.xaml中的应用程序的资源字典中,如下所示:

<Application x:Class="WpfTestApp.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Application/UserInterface/DataTemplates/TabModelDataTemplate.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/HoverablePressableButtonStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/MiniControlButtonStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/TabCloseButtonStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/TabScrollLeftButtonStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/TabScrollRightButtonStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/TabListDropDownButtonStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/TabHostComboBoxStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/TabButtonStyle.xaml"/>
                <ResourceDictionary Source="Application/UserInterface/Styles/TabHostPanelStyle.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)

我已将App.xaml迁移到我的WinForms项目,但构建操作设置为Page.如果我将它设置为ApplicationDefinition,我得到一个错误,说应用程序有多个入口点,这是有道理的,但我想知道是否正在拾取样式等.如果不是这可能解释为什么我得到一个空白的灰色矩形,我的控制应该是因为没有这些,没有什么可以定义它的外观.所以也许问题是,我如何将这些样式放入我的WinForms应用程序中,以便我的WPF控件可以看到它们?

我可能还应该提到这是在.NET Fx 3.5上运行的.

无论如何,现在我很困惑,所以任何帮助都会感激不尽.

非常感谢!

巴特

.net wpf xaml elementhost winforms

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

是否可以以编程方式清除控制台历史记录?

使用控制台应用程序时,Console.ReadLine()会存储在a 处输入的所有内容的历史记录.在控制台提示输入内容时,按向上/向下光标将滚动浏览此历史记录(按F7可查看整个历史记录).

使用C#,是否有办法禁用此行为或清除已输入的内容的历史记录?


澄清Console.Clear()一下,不清楚历史,只有屏幕缓冲区.我想清除命令历史记录.


编辑:尝试了几种建议的方法,以及我自己设计的一些方法,最好的方法是ho1建议的方法.它并不理想,因为它会带来另一个控制台窗口,但它确实清除了历史记录.

c# console console-application

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