Я предполагаю, что пространство имен, в котором находятся эти 2 класса, называется Attribute
, поэтому полный код будет:
namespace Attribute
{
[AttributeUsage(Inherited =true)]
class RequiredPropertyAttribute : Attribute //There is a problem.
{
}
[AttributeUsage(AttributeTargets.Class,AllowMultiple = true)]
class ToTableAttribute : Attribute //There is also a problem.
{
string _tableName;
public ToTableAttribute(string tableName)
{
_tableName = tableName;
}
}
}
И если не так, то классы не являются частьюnamespace, то есть пространство имен, где, либо в вашем проекте, либо в dll, на который есть ссылка, имя которого Attribute
. По сути, причина, по которой вышеприведенный код не работает, заключается в том, что IntelliSense предполагает, что ваши классы наследуются от пространства имен с именем Attribute
, а не от класса System.Attribute
. Таким образом, чтобы исправить это, все, что вам нужно сделать, это либо изменить имя пространства имен, либо добавить к Attribute
s, после двоеточий, System.
, чтобы ваш фиксированный код был таким:
namespace Attribute //This should be renamed instead or else for every attribute class you create you will need to specify "System.Attribute" as the base
{
[AttributeUsage(Inherited =true)]
class RequiredPropertyAttribute : System.Attribute //Will tell IntelliSense that your class is inheriting from the Attribute class rather than the above namespace
{
}
[AttributeUsage(AttributeTargets.Class,AllowMultiple = true)]
class ToTableAttribute : System.Attribute
{
string _tableName;
public ToTableAttribute(string tableName)
{
_tableName = tableName;
}
}
}