Reputation: 3840
What i want to achieve is simple, i have an Interface IDatasource
, which has a property called DatasourceSettings
public interface IDatasource
{
DatasourceSettings DatasourceSettings { get; set; }
}
The implementing Class looks like this
public class TestDatasource : IDatasource
{
public DatasourceSettings IDatasource.DatasourceSettings { get { return DatasourceSettings; } set { DatasourceSettings = (TestDatasourceSettings)value; } }
public TestDatasourceSettings DatasourceSettings { get; set; }
}
As you may possibly see, the property is first implemented explicit, and it should return the DatasourceSettings
Property of the class itself
So on, here is what i want to achieve
var ds = new TestDatasource();
if (ds.DatasourceSettings is TestDatasourceSettings &&
((IDatasource)ds).DatasourceSettings is DatasourceSettings)
{
// should be true
}
The Error i get :
The modifier 'public' is not valid for this item
So What's wrong here?
Upvotes: 1
Views: 2853
Reputation: 4692
public class TestDatasource : IDatasource
{
DatasourceSettings IDatasource.DatasourceSettings { get { return DatasourceSettings; } set { DatasourceSettings = (TestDatasourceSettings)value; } }
public TestDatasourceSettings DatasourceSettings { get; set; }
}
Had the same mistake recently... turns out if the implementation is explicit you don't write access modifier.
Upvotes: 2
Reputation: 3724
Remove the public
from
public DatasourceSettings IDatasource.DatasourceSettings
Because it is explicitly implementing an interface method it is a-priori public
Upvotes: 3