Я сильно подозреваю, что Base.cs
(единственный файл C #, показанный в проекте VDB.Common.RequestAndResponses
) не на самом деле объявляет тип в пространстве имен VDB.Common.RequestAndResponses
- или что он только внутренний (а не публичный ) тип.
Например, обратите внимание, что код, который вы создаете, находится в проекте VDB.Client.Infrastructure
, но объявляет только класс в пространстве имен Agatha
, а не VDB.Client.Infrastructure.Agatha
, что может быть тем, что вы намеревались. Возможно, у вас есть такие же вещи в Base.cs
, возможно?
Не видя код в Base.cs, мы не видим, что не так. Если бы вы могли просто опубликовать фрагмент этого - только пространство имен и объявление класса - это было бы полезно.
Обратите внимание, что хотя у библиотеки классов есть пространство имен по умолчанию , это не предшествует тому, что фактически объявляет исходный файл. Другими словами, в библиотеке Acme.Widgets
, если у вас было объявление:
namespace Web
{
public class Button {}
}
, который бы объявлял только тип Web.Button
, , а не Acme.Widgets.Web.Button
.
РЕДАКТИРОВАТЬ: «ответ» ОП подтверждает то, что я думал ... в основном это не объявляет пространство имен вообще. Это должно выглядеть так:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Agatha.Common;
namespace VDB.Common.RequestAndResponses
{
public abstract class BaseRequest :Request
{
// Code
}
public abstract class BaseResponse : Response
{
// Code
}
}
Я бы также настоятельно посоветовал бы поместить эти классы в два отдельных файла, BaseRequest.cs
и BaseResponse.cs
. Я также очень удивлен, увидев ссылку на Agatha.Common
- разве это не должно быть VDB.Common.Agatha
или что-то в этом роде?