标签: custom-properties

将自定义属性添加到函数

由于存在与我的关键字相关的许多其他问题,因此搜索适当的答案很困难,所以我在这里会问这个问题.

我们知道,javascript中的函数是对象,它们有自己的属性和方法(更合适的是函数,从Function.prototype继承).

我正在考虑为一个函数(方法)添加自定义属性,让我们跳过"为什么?" 部分并直接进入代码:

var something = {
    myMethod: function () {
        if (something.myMethod.someProperty === undefined) {
            something.myMethod.someProperty = "test";
        }
        console.log(something.myMethod);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用Firebug的DOM资源管理器进行检查时,属性按预期定义.但是,由于我不认为自己是一个JavaScript专家,我有以下问题:

  1. 这种方法可以被认为是"正确的"并且符合标准吗?它适用于Firefox,但在Web浏览器中有许多工作正常,并且不是任何标准.
  2. 通过向它们添加新属性这种改变对象是一种好习惯吗?

javascript oop function object custom-properties

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

从自定义属性装饰属性获取价值?

我编写了一个我在类的某些成员上使用的自定义属性:

public class Dummy
{
    [MyAttribute]
    public string Foo { get; set; }

    [MyAttribute]
    public int Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我能够从类型中获取自定义属性并找到我的特定属性.我无法弄清楚怎么做是获取指定属性的值.当我接受Dummy的一个实例并将它(作为一个对象)传递给我的方法时,我怎样才能获取我从.GetProperties()获取的PropertyInfo对象并获取分配给.Foo和.Bar的值?

编辑:

我的问题是我无法弄清楚如何正确调用GetValue.

void TestMethod (object o)
{
    Type t = o.GetType();

    var props = t.GetProperties();
    foreach (var prop in props)
    {
        var propattr = prop.GetCustomAttributes(false);

        object attr = (from row in propattr where row.GetType() == typeof(MyAttribute) select row).First();
        if (attr == null)
            continue;

        MyAttribute myattr = (MyAttribute)attr;

        var value = prop.GetValue(prop, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,prop.GetValue调用给了我一个TargetException - 对象与目标类型不匹配.如何构建此调用以获取此值?

.net c# custom-properties

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

WebStorm CSS 无法解析自定义属性

从照片中可以看出,在我的 CSS 文件中,我使用了自定义 CSS。WebStorm 给出错误。我该如何解决?

当悬停在它上面时,完整的错误就在这里

Cannot resolve '--color-gray-1' custom property
This inspection warns about CSS custom property variable references which cannot be resolved to any valid target
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

css custom-properties webstorm

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

如何在 VSCode/VSCodium 中显示 css 自定义属性/变量的颜色预览

我花了很多时间在 VSCodium 中为自定义 WordPress 主题编写 css。我使用 wp-cli 创建了脚本来自动化许多过程,因此我使用了大量自定义属性/变量,特别是颜色:前景、背景和渐变。

有没有办法让 VSCode/VSCodium 显示如下代码的颜色预览,就像color: red;or等​​关键字一样color: #ff0000

:root {
    --hue--1: 45;

    --color--saturation: 1%;
    --color--lightness: 1%;
    --color--opacity: 1;
    
    --color--dark: hsl(var(--hue--1)
    calc(22 * var(--color--saturation))
    calc(33 * var(--color--lightness))
    calc(1 * var(--color--opacity))
    );
    --c1: [color preview square here]var(--color--dark);
}
Run Code Online (Sandbox Code Playgroud)

从一个主题跳到另一个主题,如果没有我已经习惯的颜色预览,很难保持 9 种颜色变体和 3 种渐变(这是深色的、浅色的、明亮饱和的还是柔和的?)

我尝试过各种扩展:CSS Variable Autocomplete、Colorize、TODO Hightlight 等。没有一个达到预期的效果。

css var colors custom-properties visual-studio-code

7
推荐指数
0
解决办法
928
查看次数

在VS设计器中公开类型列表的属性<class>限制/隐藏对成员的访问权限或将属性显示为可扩展菜单?

我为我的Windows应用程序创建了一个自定义选项卡控件.自定义选项卡控件扩展System.Windows.Forms.TabControl.我之所以创建自定义选项卡控件,是因为我可以在Visual Studio属性窗口中公开一个属性,该属性允许我为自定义选项卡控件中的每个选项卡页面定义单独的字体.以下是类定义的快速浏览:

[ToolboxItem(true)]    
public partial class CustomTabControl : System.Windows.Forms.TabControl
Run Code Online (Sandbox Code Playgroud)

为了存储每个单独的名称/字体对,我在CustomTabControl中创建了一个嵌套类:

[TypeConverter(typeof(TabFontConverter))]
public class TabFont
{
    public string Name { get; set; }
    public Font Font { get; set; }        
    public TabFont()
    {
    }        
    public TabFont(string name, Font font)
    {
        this.Name = name;
        this.Font = font;
    }
}
Run Code Online (Sandbox Code Playgroud)

(注意在TabFont类上面使用TypeConverter属性.我添加了这个,因为我在网上读过这个,如果我要在Visual Studio设计器中公开这个类型,这是必需的.)

这是转换器类(它也嵌套在CustomTabControl中):

public class TabFontConverter : TypeConverter
{
    public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] filter)
    {
        return TypeDescriptor.GetProperties(value, filter);
    }

    public override bool GetPropertiesSupported(ITypeDescriptorContext context)
    {
        return true; …
Run Code Online (Sandbox Code Playgroud)

c# custom-controls visual-studio-2010 user-defined-types custom-properties

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

如何在Liberty上使用TLS_CLIENT_CERTIFICATE_SECURITY选项设置JDBC驱动程序的securityMechanism属性?

我尝试使用WebsphereLiberty®上的选项(参考以下IBM®Knowledge Center)来设置JDBC驱动程序securityMechanism属性,但是在启动Websphere Liberty(2015年7月测试版)时收到警告消息。TLS_CLIENT_CERTIFICATE_SECURITYCWWKG0032W

您能告诉我如何通过Websphere Liberty上securityMechanismTLS_CLIENT_CERTIFICATE_SECURITY选项设置JDBC驱动程序的属性吗?

IBM Data Server Driver for JDBC和SQLJ支持证书认证

用于JDBC和SQLJ的IBM®数据服务器驱动程序支持对证书认证的客户机支持,以支持到DB2®for z /OS®版本10或更高版本的数据服务器的连接。

Websphere Liberty Server启动时的console.log

CWWKG0032W: Unexpected value specified for property
            [securityMechanism], value = [18]. >Expected value(s) are:
            [3][4][7][9][11][12][13][15][16].
Run Code Online (Sandbox Code Playgroud)

securityMechanism="18"TLS_CLIENT_CERTIFICATE_SECURITY,我通过以下方式确认了该值:

\>javac -classpath .;db2jcc4.jar; JDBCCheck
\>java -classpath .;db2jcc4.jar; JDBCCheck
  TLS_CLIENT_CERTIFICATE_SECURITY: 18
Run Code Online (Sandbox Code Playgroud)

JDBCCheck类:

class JDBCCheck{
  public static void main(String args[]){
    com.ibm.db2.jcc.DB2SimpleDataSource dataSource =
                                   new com.ibm.db2.jcc.DB2SimpleDataSource();
    System.out.println( "TLS_CLIENT_CERTIFICATE_SECURITY: "
                        + dataSource.TLS_CLIENT_CERTIFICATE_SECURITY);
  }
} …
Run Code Online (Sandbox Code Playgroud)

db2 ssl jdbc custom-properties websphere-liberty

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

如何为ASPX UserControl属性设置默认值?

我在页面上定义了一个用户控件,如下所示:

<uc:MyUserControl ID="MyUserControl" runat="server" Visible="true" />
Run Code Online (Sandbox Code Playgroud)

我想在具有自定义属性的不同页面上重用相同的控件,如下所示:

<uc:MyUserControl ID="MyUserControl" runat="server" Visible="true" 
MyCustomProperty="MyCustomText" />
Run Code Online (Sandbox Code Playgroud)

MyCustomProperty的目的是将MyUserControl中的某些文本控制为我指定的任何文本.

对于第一种情况,我希望文本是"查看",对于第二种情况,我希望它是"MyCustomText".

在我的用户控件中,我有以下代码来定义属性:

[DefaultValue("View")]
public string MyCustomProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

我还有以下代码来更新基于属性的文本:

LinkButton buttonSelect = e.Item.FindControl("ButtonSelect") as LinkButton;
if(buttonSelect != null) buttonSelect.Text = MyCustomProperty;
Run Code Online (Sandbox Code Playgroud)

实际发生的情况是,在第一种情况下未提供自定义属性时,MyCustomProperty == null.

我试图通过添加DefaultValue属性来指定默认值应为"View",但它没有我想要的影响.

谁能发现我做错了什么?

c# user-controls default-value custom-properties

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

带自定义控件的WPF标签顺序?

我有一个WPF页面,其中包含几个带有Tab键顺序设置的开箱即用控件.

我有一个自定义控件(NumericSpinner),其中包含:border/grid/text box/2 Repeatbuttons(向上/向下).

两个问题:

1)当我在自定义选择器控件的文本框中时,我无法将其标记为页面上的其他控件.但是,在单击其中一个向上/向下箭头后,我可以切换到其他控件.

2)我无法按顺序进入自定义控件的文本框.只有在我通过所有控件选项卡后,光标才会落在文本框中(并且不能标记出来).

语境:

<ComboBox Margin="97,315,21,0" Name="txtdweldatcdu" Style="{StaticResource fieldComboBoxStyle}" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Left" VerticalAlignment="Top" TabIndex="10" />
    <WpfControls:NumericSpinner Margin="97,338,21,0" Name="txtdweldatpctcomplete" HorizontalAlignment="Left" VerticalAlignment="Top" AllowNegativeValues="True" MaxValue="100" TabIndex="11" />
    <ComboBox Margin="97,363,21,0" Name="txtdweldatclass" Style="{StaticResource fieldComboBoxStyle}" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Left" VerticalAlignment="Top" TabIndex="12" />
Run Code Online (Sandbox Code Playgroud)

自定义控件的一部分:

 <Border BorderThickness="1" BorderBrush="Gray" Margin="0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="20" Width="117">
        <Grid Margin="0">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="98"/>
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <TextBox Name="valueText" 
                     BorderThickness="0" 
                     Grid.RowSpan="2"
                     Style="{StaticResource spinnerTextBoxStyle}"
                     PreviewKeyDown="valueText_PreviewKeyDown"
                     PreviewTextInput="valueText_PreviewTextInput"
                     TextChanged="valueText_TextChanged"
                     IsReadOnly="{Binding ElementName=Spinner, Path=IsReadOnly}"
                     Text="{Binding ElementName=Spinner, Path=Value, Mode=TwoWay}"
                     KeyboardNavigation.IsTabStop="True"
                     AcceptsTab="True"/>
            <RepeatButton Name="upButton" Style="{StaticResource spinnerRepeatButtonStyle}" …
Run Code Online (Sandbox Code Playgroud)

wpf custom-controls tab-ordering custom-properties

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

用户控件自定义属性在构建时会丢失值

我有一个名为"UserControl1"的UserControl,里面有一个标签和一个自定义属性:

[Browsable(true)]
public new string Text
{
    get { return label1.Text; }
    set { label1.Text = value; }
}

public UserControl1()
{
    InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)

此UserControl用于名为"Form1"的表单中.在设计器中出现属性,但是当我写一些文本并构建应用程序时,文本被清除.我可以看到,该属性不是在Form1.Designer.cs中编写的.

如果我将属性名称更改为其他单词,则一切正常.请注意"new"关键字以覆盖基础变量..

我在这里找到了类似的问题,但没有解决方案.

问候!

编辑:没有硬编码值:

UserControl1.Designer.cs:

        // label1
        // 
        this.label1.AutoSize = true;
        this.label1.Location = new System.Drawing.Point(64, 63);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(35, 13);
        this.label1.TabIndex = 0;
        // 
        // UserControl1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.Controls.Add(this.label1);
        this.Name = "UserControl1";
        this.Size = new System.Drawing.Size(181, 136);
        this.ResumeLayout(false);
        this.PerformLayout(); …
Run Code Online (Sandbox Code Playgroud)

c# user-controls custom-properties winforms visual-studio-2012

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

Mercurial中的自定义修订属性?

我可以为我的hg存储库设置自定义属性,以便我可以存储/检索每个修订版的值吗?比如,在提交时东京的天气等.

git也一样吗?

git mercurial custom-properties

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