Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入并运行利用c#自定义属性的外部方法_C#_Attributes - Fatal编程技术网

导入并运行利用c#自定义属性的外部方法

导入并运行利用c#自定义属性的外部方法,c#,attributes,C#,Attributes,因此,由于一个奇怪的性能问题,我们目前需要运行windows窗体,并强制它像控制台项目一样工作。这并不是一个真正的问题,在第三部分研究性能问题时,它工作得很好 当你这样做的时候 Console.WriteLine("something") 实际上不会打印到控制台 解决方案是添加以下内容(在一堆SO帖子中找到) 然后在Main中调用该方法 AttachConsole(-1); 好的,这很好,仍然需要看看这是否会导致最初提示我们使用windows窗体解决方案的性能问题,

因此,由于一个奇怪的性能问题,我们目前需要运行windows窗体,并强制它像控制台项目一样工作。这并不是一个真正的问题,在第三部分研究性能问题时,它工作得很好

当你这样做的时候

Console.WriteLine("something") 
实际上不会打印到控制台

解决方案是添加以下内容(在一堆SO帖子中找到)

然后在Main中调用该方法

            AttachConsole(-1);
好的,这很好,仍然需要看看这是否会导致最初提示我们使用windows窗体解决方案的性能问题,待定

因为我不想把这段代码复制到每个项目中(Booooo),所以我创建了一个脚本并将代码添加到其中

public class FormOnConsol : Attribute
{
    [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
    public static extern bool AttachConsole(int processId);

    public FormOnConsol(int processid = -1)
    {
        AttachConsole(processid);
    }
}
我似乎不明白为什么像这样使用它是不起作用的

    [STAThread]
    [FormOnConsol]
    static void Main()
    {
          //some fun code here
          //naturally because all code is fun =]
    }
任何一点在正确的方向是非常感谢


提前谢谢

属性的构造函数只有在查询时才会被激活。请在此处查看有关此主题的更多信息:


另外,对任何活动操作使用属性是不正确的。它应该仅用于声明目的

属性的构造函数只有在查询时才会被激活。请在此处查看有关此主题的更多信息:


另外,对任何活动操作使用属性是不正确的。它应该仅用于声明目的

属性的构造函数只有在查询时才会被激活。请在此处查看有关此主题的更多信息:


另外,对任何活动操作使用属性是不正确的。它应该仅用于声明目的

属性的构造函数只有在查询时才会被激活。请在此处查看有关此主题的更多信息:


另外,对任何活动操作使用属性是不正确的。它应该仅用于声明目的

谢谢你的回复,我们会调查的。有点像是一个做属性的借口,只是看起来像是一个非突兀的方式来包含这一点。碰巧有一个更好的方法来解决这个问题的建议?我想我可以创建一个基类来实现这一点,只是把它作为一个属性看起来“更干净”。是的,使用基类是更自然的方式。谢谢你的回复,我会研究它。有点像是一个做属性的借口,只是看起来像是一个非突兀的方式来包含这一点。碰巧有一个更好的方法来解决这个问题的建议?我想我可以创建一个基类来实现这一点,只是把它作为一个属性看起来“更干净”。是的,使用基类是更自然的方式。谢谢你的回复,我会研究它。有点像是一个做属性的借口,只是看起来像是一个非突兀的方式来包含这一点。碰巧有一个更好的方法来解决这个问题的建议?我想我可以创建一个基类来实现这一点,只是把它作为一个属性看起来“更干净”。是的,使用基类是更自然的方式。谢谢你的回复,我会研究它。有点像是一个做属性的借口,只是看起来像是一个非突兀的方式来包含这一点。碰巧有一个更好的方法来解决这个问题的建议?我想我可以创建一个基类来实现这一点,只是将它作为一个属性看起来“更干净”。是的,使用基类是更自然的方式。
    [STAThread]
    [FormOnConsol]
    static void Main()
    {
          //some fun code here
          //naturally because all code is fun =]
    }