我有以下界面:
public interface ISoftDeletable
{
bool IsDeleted { get; set; }
}
而我的实体:
public class Field : ISoftDeletable
{
[Key]
public int FieldID { get; set; }
public bool IsDeleted { get; set; }
...
在我的通用存储库中,我有:
...
if( entity is ISoftDeletable )
{
entity.IsDeleted = true; // does not know entity is implementing ISoftDeletable, so is throwing error that i cannot set IsDeleted
}
...
但是当然,由于实体是泛型类型,因此c#不知道实体在实现ISoftDeletable。
如何让C#知道可以设置IsDeleted属性?
最佳答案
除了您提供的内容外,我对您的设置一无所知。但这对我来说真是可恶。可能不是,但是我没有足够的图片知道。
要解决您的直接问题,可以将entity
强制转换为ISoftDeletable
,以便可以设置ISDeleted
属性:
((ISoftDeletable)entity).IsDeleted = true;
再次;不得不这样做的感觉;但现在是晚上9:47,所以我今晚不会花太多的脑力去解决这个问题。
关于c# - 告诉C#变量具有接口(interface)的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28869083/