Düğümlerin ağaç yapısını oluşturan bir uygulama üzerinde çalışıyorum. Her biri belirli davranışları ve özellikleri olan birçok düğüm türü vardır. Her düğüm türünü, bir görüntü adı, açıklama ve 16x16 simgesi içeren özelliklerle ilişkilendirmek istiyorum.Bir özellik gömülü bir kaynağa başvuruda bulunabilir mi?
public class NodeTypeInfoAttribute : Attribute
{
public NodeTypeInfoAttribute(string displayName, string description, System.Drawing.Image icon)
: this(displayName, description)
{
this.Icon = icon;
}
public NodeTypeInfoAttribute(string displayName, string description, string iconPath):this(displayName,description)
{
String absPath;
if (System.IO.Path.IsPathRooted(iconPath))
{
absPath = iconPath;
}
else
{
string folder = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
absPath = System.IO.Path.Combine(folder, iconPath);
}
try
{
System.Drawing.Image i = System.Drawing.Image.FromFile(absPath);
}
catch (System.IO.FileNotFoundException)
{
Icon = null;
}
}
public NodeTypeInfoAttribute(string displayName, string description)
{
this.DisplayName = displayName;
this.Description = description;
}
public string DisplayName
{
get;
private set;
}
public string Description
{
get;
private set;
}
public System.Drawing.Image Icon
{
get;
set;
}
}
Bir dosya yolu olarak Simge belirten bir yapıcı Not ve System.Drawing.Image
olarak simge belirten bir yapıcısı:
İşte özel için kod oluşturduğum özellik bu.
Sonuç olarak, bu özniteliği, bunun gibi yerleşik bir görüntü kaynağıyla kullanmak istiyorum.
[NodeTypeInfo("My Node","Sample Description",Properties.Resources.CustomIcon)]
public class CustomNode:Node
{
...
Ancak, bu kod ben bir simge resmi olan bir sınıfın bir türü (değil bir örneği) ilişkilendirebileceğiniz başka yolu var mı hata
An attribute argument must be a constant expression, typeof expression or
array creation` expression of an attribute parameter type
döndürür?