问题列表 - 第7948页

AllowMultiple不适用于属性属性?

我想收集放置在Property上的所有自定义属性.分配给属性的同一类型有多个属性,但在收集它们时,结果集合仅包含特定类型的第一个属性:

Attribute类

[AttributeUsage(System.AttributeTargets.Property,
               AllowMultiple = true)]

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

用法:

[ConditionAttribute("Test1")]
[ConditionAttribute("Test2")]
[ConditionAttribute("Test3")]
public Color BackColor{get; set;}
Run Code Online (Sandbox Code Playgroud)

现在循环遍历对象'value'的所有Props,其类包含Prop"BackColor":

foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(value))
{
  foreach (Attribute attribute in property.Attributes)
  {   ... }
   ....
}
Run Code Online (Sandbox Code Playgroud)

集合属性.属性只包含"ConditionAttribute"类型的一个属性:带有"Test1"的属性.其他人被忽略;-(

那么AllowMultiple不适用于属性属性吗?

提前致谢

亨里克

attributes custom-attributes

7
推荐指数
2
解决办法
3104
查看次数

Delphi组件未绘制

我有组件(TPanel的后代),我实现了Transparency和BrushStyle(使用TImage)属性.

当我在表单上有一个这种类型的组件时,一切都没问题.发髻当我在表格上加注这种类型的更多组件时,只涂上第一个可见组件.当移动窗体并且第一个组件位于其他窗口或外部桌面下时,下一个组件被绘制.

unit TransparentPanel;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, stdctrls;

type
  TTransparentPanel = class(TPanel)
  private
    FTransparent: Boolean;
    FBrushStyle: TBrushStyle;
    FImage: TImage;

    procedure SetTransparent(const Value: Boolean);
    procedure SetBrushStyle(const Value: TBrushStyle);
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Transparent: Boolean read FTransparent write SetTransparent default
      True;
    property BrushStyle: TBrushStyle read FBrushStyle write SetBrushStyle default
      bsBDiagonal;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('TransparentPanel', [TTransparentPanel]); …
Run Code Online (Sandbox Code Playgroud)

delphi panel tpanel custom-component

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

客户端的@EJB注释

使用NetBeans,我在包含的类中执行以下操作main(),它可以工作:

import javax.ejb.EJB;

public class Master {
    @EJB
    TestBeanARemote x;

    public static void main(String[] args) {
        Master m = new Master();
        m.doStuff();
    }
//doStuff includes x, but it works, so who cares.
...
Run Code Online (Sandbox Code Playgroud)

但是,如果我在被调用的类中执行此操作,则会失败.似乎被调用的类要求我避免使用注释,而是使用整个InitialContext()设置.

String testRun(String arg) {
   InitialContext ic;
    try {
        ic = new InitialContext();
        x = (TestBeanARemote) ic.lookup("com.bnncpa.testing.TestBeanARemote");
        return x.testRun(arg);

    }
Run Code Online (Sandbox Code Playgroud)

完整的失败副本如下:

package enterpriseapplication1;
public class Main {

    private Secondary x = new Secondary();

    public static void main(String[] args) {
        Main m = new …
Run Code Online (Sandbox Code Playgroud)

java netbeans ejb java-ee

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

读取二进制文件并使用Response.BinaryWrite()

我有一个应用程序,需要从文件系统中读取PDF文件,然后将其写出给用户.PDF是183KB,似乎完美无缺.当我使用底部的代码时,浏览器获取一个224KB的文件,我从Acrobat Reader收到一条消息,说文件已损坏且无法修复.

这是我的代码(我也尝试过使用File.ReadAllBytes(),但我得到了相同的东西):

using (FileStream fs = File.OpenRead(path))
{
    int length = (int)fs.Length;
    byte[] buffer;

    using (BinaryReader br = new BinaryReader(fs))
    {
        buffer = br.ReadBytes(length);
    }

    Response.Clear();
    Response.Buffer = true;
    Response.AddHeader("content-disposition", String.Format("attachment;filename={0}", Path.GetFileName(path)));
    Response.ContentType = "application/" + Path.GetExtension(path).Substring(1);
    Response.BinaryWrite(buffer);
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net

22
推荐指数
5
解决办法
7万
查看次数

需要在动态构建的WPF DataGrid中格式化日期

我们在运行时将未知结果集绑定到WPF DataGrid.我们的一些列将包含DateTime值,我们需要正确格式化这些日期时间字段.在设计时不知道哪些列将是DateTime字段,我们如何在运行时格式化列?

我们使用DataTable的DefaultView绑定到WPF DataGrid.

format wpf datetime datagrid

30
推荐指数
5
解决办法
5万
查看次数

为什么2 [myArray]有效的C语法?

重复

在C数组中为什么这是真的?a [5] == 5 [a]


给定一个数组

 myArray[5] = { 0, 1, 2, 3, 4 };
Run Code Online (Sandbox Code Playgroud)

一个元素可以作为

 2[myArray]
Run Code Online (Sandbox Code Playgroud)

为什么?当我看到这个表达式时,我想象C试图访问指针"2"并且未能添加"myArray"指针增量来取消引用该地址.我错过了什么?

c arrays syntax pointers

5
推荐指数
1
解决办法
419
查看次数

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

处理超过1024个文件描述符,在Linux上的C语言中

我正在使用epoll(边缘触发)和线程的线程网络服务器,我正在使用httperf来对我的服务器进行基准测试.

到目前为止,它的表现非常好或几乎完全符合发送请求的速度.直到1024障碍,一切都放慢到大约30个请求/秒.

在64位的Ubuntu 9.04上运行.

我已经尝试过了:

  • 成功增加文件描述符的ulimit数.它只是没有提高1024个并发连接以上的性能.

    andri @ filefridge:〜/ Dropbox/School/Group 452/Code/server $ ulimit -n
    20000

我很确定这种减速是在操作系统中发生的,因为它发生在事件发送到epoll之前(是的,我也增加了epoll的限制).

我需要对程序可以处理的并发连接数进行基准测试,直到它开始变慢(没有操作系统干扰).

如何让我的程序运行超过1024个文件描述符?

这个限制可能是有原因的,但是出于基准测试的目的,我需要它.

更新

谢谢你的所有答案,但我想我找到了罪魁祸首.在我的程序中重新定义__FD_SETSIZE后,一切开始变得更快.当然ulimit也需要提升,但没有__FD_SETSIZE我的程序永远不会利用它.

c linux networking multithreading

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

238
推荐指数
8
解决办法
32万
查看次数

使用外部文件或资源?

我正在编写一个使用长"硬编码"字符串的C#应用​​程序.

出于可维护性的原因,我决定将此字符串放在外部文本文件中并加载它.这是一个好主意吗?在这种情况下,额外的I/O似乎并不大.

我意识到我还可以选择将此文件作为.resx资源嵌入.这是一个更好的主意吗?该文件永远不需要本地化.

.net c# resources embedded-resource

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