Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 来自另一个DLL实现错误的控制台应用程序接口_C# 4.0_Console Application - Fatal编程技术网

C# 4.0 来自另一个DLL实现错误的控制台应用程序接口

C# 4.0 来自另一个DLL实现错误的控制台应用程序接口,c#-4.0,console-application,C# 4.0,Console Application,我在DLL中有一个接口,正在控制台应用程序中实现它以进行测试 我的界面如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Gemini.Data.Interfaces { public interface IUser { IEnumerable<IUserDetails> UserProfiles { ge

我在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; }
    }
}
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");
        }

    }

}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
命名空间Gemini.Data.Interfaces
{
公共接口IUser
{
IEnumerable用户配置文件{get;set;}
字符串AdUserName{get;set;}
}
公共界面详细信息
{
int UserId{get;set;}
字符串DisplayUserName{get;set;}
代码字符串{get;set;}
字符串UserEmail{get;set;}
字符串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 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; }
    }
}
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");
        }

    }

}
使用系统;
使用System.Collections.Generic;
使用Gemini.Data.Interfaces;
命名空间控制台应用程序2
{
公共类用户:Gemini.Data.Interfaces.IUser
{
私有IEnumerable_UserProfiles=null;
#区域IUser成员
公共IEnumerable用户配置文件
{
获取{return\u UserProfiles;}
设置{u UserProfiles=value;}
}
公共字符串AdUserName{get;set;}
#端区
}
班级计划
{
静态void Main(字符串[]参数)
{
用户u=新用户();
Gemini.Data.Main.UserDetails ud=新的Gemini.Data.Main.UserDetails(u,“Qpirate”);
}
}
}
VisualStudio似乎引用了这些接口,我可以调用这些类的Go to定义

有人知道我可以试试别的吗


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

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

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

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


如果这也无法解决问题,请尝试先将dll的代码合并到应用程序中,然后逐个移动。我希望您的代码库很小。

我最终删除了旧的解决方案并重新开始,但我确实注意到,当我创建控制台应用程序时,目标框架是“.NET Framework Client Profile”