我一直在使用microsofts网站上的指南,但无法将它们付诸实践。我在这里使用过这段代码:
Attribute
但是这会导致下面的错误; Equals
似乎只有方法ReferenceEquals
和Error CS0117: 'Attribute' does not contain a definition for 'GetCustomAttribute' (CS0117) (TestProject)
。我以为我可能会错过参考文献,但我已经包含了样本中的所有内容。
const redis = require('redis');
const { REDIS_URL: redisUrl, REDIS_PASSWORD: redisPassword } = process.env;
const client = redis.createClient(redisUrl, {
no_ready_check: true,
auth_pass: redisPassword
});
client.on('connect', () => {
redisPassword && client.auth(redisPassword);
});
client.on('error', err => {
global.console.log(err.message)
});
答案 0 :(得分:3)
因为您正在使用Xamarin,所以您正在运行Mono Framework,这意味着您无法像预期的那样访问完整的.Net Framework库。其中一个变化是反射,您需要将代码更改为:
TestAttribute MyAttribute = typeof(T).GetTypeInfo().GetCustomAttribute<TestAttribute>();
答案 1 :(得分:0)
您无法找到它,因为它尚未在那里实施。请参阅下面反编译的System.Runtime.dll。
namespace System
{
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)]
public abstract class Attribute
{
[SecuritySafeCritical]
public override bool Equals(object obj)
{
return false;
}
[SecuritySafeCritical]
public override int GetHashCode()
{
return 0;
}
}
}
使用类似
的内容typeof(T).GetTypeInfo().GetCustomAttribute<>()
代替