0

我在 DLL 中有一个接口,并在用于测试的控制台应用程序中实现它

我的界面如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Gemini.Data.Interfaces
{
    public interface IUser
    {
        IEnumerable<IUserDetails> UserProfiles { get; set; }
        string AdUserName { get; set; }
    }

    public interface IUserDetails
    {
        int UserId { get; set; }
        string DisplayUserName { get; set; }
        string OfficeCode { get; set; }
        string UserEmail { get; set; }
        string AdLogin { get; set; }
        bool? LastActiveUser { get; set; }
        Gemini.Data.App_Consts.Access_Rights UserAccess { get; set; }
        bool IsPM { get; set; }
        bool IsSPM { get; set; }
        bool IsVdbUser { get; set; }
        DateTime? LastModified { get; set; }
        DateTime? LastLoginUse { get; set; }
        int? LastModifiedBy { get; set; }
    }
}

当我尝试在测试应用程序中使用它时,我得到以下信息

命名空间“Gemini.Data.Interfaces”中不存在类型或命名空间名称“IUser”(您是否缺少程序集引用?)

控制台应用程序如下

using System;
using System.Collections.Generic;
using Gemini.Data.Interfaces;

namespace ConsoleApplication2
{
    public class User : Gemini.Data.Interfaces.IUser
    {
        private IEnumerable<IUserDetails> _UserProfiles = null;
        #region IUser Members

        public IEnumerable<IUserDetails> UserProfiles
        {
            get { return _UserProfiles; }
            set { _UserProfiles = value; }
        }

        public string AdUserName { get; set; }

        #endregion

    }
    class Program
    {
        static void Main(string[] args)
        {

            User u = new User();
            Gemini.Data.Main.UserDetails ud = new Gemini.Data.Main.UserDetails(u, "Qpirate");
        }

    }

}

Visual Studio 似乎引用了接口,我可以在类上调用 Go To Definition。

有人知道我可以尝试的其他东西吗?

我已经检查了控制台应用程序的目标是与 DLL 相同的 .NET Framework。

4

2 回答 2

0

同样的问题发生在我身上一次,我发现程序集名称和控制台应用程序名称在我的情况下是相同的。

要进行故障排除,我建议首先确保 dll 和控制台应用程序的程序集名称不同。

如果这不能解决,请尝试指定不同的命名空间(项目选项卡中的默认命名空间和重命名现有命名空间)。

如果还是不行,可以尝试先将dll的代码合并到app中,然后一个一个的移动。我希望你的代码库很小。

于 2012-05-17T11:47:43.417 回答
0

我最终只是删除了旧的解决方案并重新开始,但我注意到的一件事是,当我创建控制台应用程序时,目标框架是“.NET Framework 客户端配置文件”

于 2012-08-24T10:07:37.003 回答