在公共接口上获取不一致的辅助功能错误



好的,所以我知道这是一个有点常见的问题,但答案似乎一直是将接口设置为public。我的接口是公共的,我得到这个错误

错误CS0050可访问性不一致:返回类型'IEnumerable<LoadData>不如方法"ILoanSelector"可访问。选择序列(('

这是我的密码。

namespace EscrowAnalysis
{
public interface ILoanSelector
{
IEnumerable<LoanData> SelectSerials();
}
class LoanSelector : ILoanSelector
{
public string ConnectionString { get; }
public string LinkedServer { get; private set; }
public LoanSelector(string connectionString, string linkedServer)
{
if (String.IsNullOrWhiteSpace(connectionString)) throw new ArgumentNullException(nameof(connectionString));
if (String.IsNullOrWhiteSpace(linkedServer)) throw new ArgumentNullException(nameof(linkedServer));
ConnectionString = connectionString;
LinkedServer = linkedServer;
}
public IEnumerable<LoanData> SelectSerials()
{
var result = new List<LoanData>();
using (var connection = new SqlConnection(ConnectionString))
{
var command = connection.CreateCommand();
command.CommandType = System.Data.CommandType.Text;
command.CommandText = @"SELECT LOAN_SERIAL,
CLOSE_DATE
FROM OPENQUERY(@linkedserver,'
SELECT
l.Serial AS LOAN_SERIAL,
l.CLOSE_DATE
FROM core.loan l
INNER JOIN core.account la ON la.serial = l.parent_serial
INNER JOIN core.person p ON p.serial = la.primary_person_serial
INNER JOIN core.ln_type lt ON lt.serial = l.type_serial AND lt.CRED_REP_PORTFOLIO_TYPE = ''M''
INNER JOIN core.share s ON s.serial = l.IMPOUND_SHARE_SERIAL AND s.TYPE_SERIAL IN (SELECT serial FROM core.sh_type st WHERE DESCRIPTION LIKE ''%Escrow%'')
INNER JOIN core.account sa ON sa.serial = s.PARENT_SERIAL
LIMIT 500
');".Replace("@linkedserver",LinkedServer);
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
LoanData tempObj = new LoanData(Convert.ToInt64(reader["LOAN_SERIAL"]), Convert.ToDateTime(reader["CLOSE_DATE"]));
result.Add(tempObj);
}
}
return result;
} 
}

请帮忙,我不确定还需要做什么来满足VS。

在这里冒险。不确定你想做什么。但我想你想要这样的东西:

namespace EscrowAnalysis
{
public class foobar
{
public IEnumerable<LoanData> SelectSerials()
{
var result = new List<LoanData>();
using (var connection = new SqlConnection(ConnectionString))
{
var command = connection.CreateCommand();
command.CommandType = System.Data.CommandType.Text;
command.CommandText = @"SELECT LOAN_SERIAL,
CLOSE_DATE
FROM OPENQUERY(@linkedserver,'
SELECT
l.Serial AS LOAN_SERIAL,
l.CLOSE_DATE
FROM core.loan l
INNER JOIN core.account la ON la.serial = l.parent_serial
INNER JOIN core.person p ON p.serial = la.primary_person_serial
INNER JOIN core.ln_type lt ON lt.serial = l.type_serial AND lt.CRED_REP_PORTFOLIO_TYPE = ''M''
INNER JOIN core.share s ON s.serial = l.IMPOUND_SHARE_SERIAL AND s.TYPE_SERIAL IN (SELECT serial FROM core.sh_type st WHERE DESCRIPTION LIKE ''%Escrow%'')
INNER JOIN core.account sa ON sa.serial = s.PARENT_SERIAL
LIMIT 500
');".Replace("@linkedserver", LinkedServer);
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
LoanData tempObj = new LoanData(Convert.ToInt64(reader["LOAN_SERIAL"]), Convert.ToDateTime(reader["CLOSE_DATE"]));
result.Add(tempObj);
}
}
return result;
}
}
public interface ILoanSelector
{
IEnumerable<foobar> GetFoobars;
}
class LoanSelector : ILoanSelector
{
public string ConnectionString { get; }
public string LinkedServer { get; private set; }
public LoanSelector(string connectionString, string linkedServer)
{
if (String.IsNullOrWhiteSpace(connectionString)) throw new ArgumentNullException(nameof(connectionString));
if (String.IsNullOrWhiteSpace(linkedServer)) throw new ArgumentNullException(nameof(linkedServer));
ConnectionString = connectionString;
LinkedServer = linkedServer;
}
}
}

最新更新