问题基于MSDN示例.
假设我们在独立桌面应用程序中有一些带有HelpAttribute的C#类.是否可以枚举具有此类属性的所有类?以这种方式识别课程是否有意义?自定义属性将用于列出可能的菜单选项,选择项将带到此类的屏幕实例.课程/项目的数量将缓慢增长,但我认为这样我们可以避免在其他地方列举所有课程/项目.
我需要在我的MVC 4应用程序中根据用户权限级别(没有角色,只分配给用户的CRUD操作级别的权限级别)来控制对视图的访问.
示例如下AuthorizeUser将是我的自定义属性abd我需要像下面一样使用它.
[AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")]
public ActionResult UpdateInvoice(int invoiceId)
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Create Invoice")]
public ActionResult CreateNewInvoice()
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Delete Invoice")]
public ActionResult DeleteInvoice(int invoiceId)
{
// some code...
return View();
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?怎么样?提前致谢...
Chatura
我已经尝试了很多次,但我仍然无法理解自定义属性的用法(我已经经历了很多链接).
任何人都可以向我解释一个带代码的自定义属性的基本示例吗?
我正在尝试创建一个通用方法,该方法将读取类的属性并在运行时返回该值.我该怎么做?
注意:DomainName属性属于DomainNameAttribute类.
[DomainName("MyTable")]
Public class MyClass : DomainBase
{}
Run Code Online (Sandbox Code Playgroud)
我想要生成的内容:
//This should return "MyTable"
String DomainNameValue = GetDomainName<MyClass>();
Run Code Online (Sandbox Code Playgroud) 例如 - 假设我想helloWorld()为Python的dict类型添加一个方法.我可以这样做吗?
JavaScript有一个行为方式的原型对象.也许这是糟糕的设计,我应该继承dict对象,但它只适用于子类,我希望它可以在任何和所有未来的字典上工作.
以下是它在JavaScript中的表现:
String.prototype.hello = function() {
alert("Hello, " + this + "!");
}
"Jed".hello() //alerts "Hello, Jed!"
Run Code Online (Sandbox Code Playgroud)
这是一个有用的链接,包含更多示例 - http://www.javascriptkit.com/javatutors/proto3.shtml
我需要能够控制如何/是否序列化类上的某些属性.最简单的情况是[ScriptIgnore].但是,我只希望这些属性能够适用于我正在处理的这个特定的序列化情况 - 如果应用程序中的下游其他模块也想要序列化这些对象,则这些属性都不应该妨碍.
所以我的想法是在属性MyAttribute上使用自定义属性,并使用知道查找该属性的钩子初始化JsonSerializer的特定实例.
乍一看,我没有看到JSON.NET中任何可用的钩子点都会为PropertyInfo当前属性提供这样的检查 - 只有属性的值.我错过了什么吗?或者更好的方法来解决这个问题?
在android中创建自定义组件时,经常会询问如何创建并将attrs属性传递给构造函数.
通常建议在java中创建一个只使用默认构造函数的组件,即
new MyComponent(context);
Run Code Online (Sandbox Code Playgroud)
而不是试图创建一个attrs对象来传递给经常在基于xml的自定义组件中看到的重载构造函数.我试图创建一个attrs对象,它似乎不容易或根本不可能(没有非常复杂的过程),并且所有帐户都不是真正需要的.
那么我的问题是:在java中构造自定义组件的最有效方法是什么,它传递或设置在使用xml对组件进行膨胀时由attrs对象设置的属性?
html5支持input[type=text]元素的占位符属性,但我需要处理不兼容的浏览器.我知道有一千个插件用于占位符,但我想创建1001个.
我能够获得input[placeholder]元素的句柄但是尝试获取占位符属性的值是返回undefined - $("input[placeholder]").attr("placeholder").
我正在使用jquery 1.6.2.
这是jsfiddle.我修改了代码以在兼容html5的浏览器中工作,仅用于测试目的.
HTML
<input type="text" name="email" size="10" placeholder="EMAIL ADDRESS">
Run Code Online (Sandbox Code Playgroud)
jQuery的
function SupportsInputPlaceholder() {
var i = document.createElement("input");
return "placeholder" in i;
}
$(document).ready(function(){
if(!SupportsInputPlaceholder()) {
//set initial value to placeholder attribute
$("input[placeholder]").val($("input[placeholder]").attr("placeholder"));
//create event handlers for focus and blur
$("input[placeholder]").focus(function() {
if($(this).val() == $(this).attr("placeholder")) {
$(this).val("");
}
}).blur(function() {
if($(this).val() == "") {
$(this).val($(this).attr("placeholder"));
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
感谢任何和所有的帮助,B
我有一个自定义属性:
public class MenuItemAttribute : Attribute
{
}
Run Code Online (Sandbox Code Playgroud)
和一个有几个方法的类:
public class HelloWorld
{
[MenuItemAttribute]
public void Shout()
{
}
[MenuItemAttribute]
public void Cry()
{
}
public void RunLikeHell()
{
}
}
Run Code Online (Sandbox Code Playgroud)
如何只获取使用自定义属性修饰的方法?
到目前为止,我有这个:
string assemblyName = fileInfo.FullName;
byte[] assemblyBytes = File.ReadAllBytes(assemblyName);
Assembly assembly = Assembly.Load(assemblyBytes);
foreach (Type type in assembly.GetTypes())
{
System.Attribute[] attributes = System.Attribute.GetCustomAttributes(type);
foreach (Attribute attribute in attributes)
{
if (attribute is MenuItemAttribute)
{
//Get me the method info
//MethodInfo[] methods = attribute.GetType().GetMethods();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我现在需要的是获取方法名称,返回类型以及它接受的参数.
我有一个Java库我正在考虑移植到C#.Java库广泛使用注释(在构建时和运行时).
我从未使用过C#属性,但是要明白它们是Java注释的粗略等价物.
如果我使用属性来替换注释继续使用端口,我需要知道什么?什么会是一样的?不同?什么会咬我?
c# ×6
attributes ×2
android ×1
annotations ×1
attr ×1
c#-4.0 ×1
class ×1
components ×1
enumerate ×1
generics ×1
java ×1
jquery ×1
json.net ×1
python ×1
reflection ×1
uicomponents ×1