C# 我的命名空间的名称与.net framework命名空间的名称相同

C# 我的命名空间的名称与.net framework命名空间的名称相同,c#,.net,C#,.net,我知道这个问题,但不知道如何解决。我不喜欢更改名称空间。这是我的代码: namespace ParlayRMS.Models.System { using System; using System.Globalization; public class MaintenanceInfo { public MaintenanceInfo() { IsDownTime = false; T

我知道这个问题,但不知道如何解决。我不喜欢更改名称空间。这是我的代码:

namespace ParlayRMS.Models.System
{
    using System;
    using System.Globalization;

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}
此类导致错误:找不到类型或命名空间“DateTime”。因为这个类放在命名空间系统中,与.NET Framework相同。如果我将ParlayRMS.Models.System更改为ParlayRMS.Models,这个类就可以了,但我不喜欢这种方式。我需要一个解决方案,在不改变许多代码的情况下


谢谢。

把用法放在外面:

using System;
using System.Globalization;

namespace ParlayRMS.Models.System
{

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}

把用法放在外面:

using System;
using System.Globalization;

namespace ParlayRMS.Models.System
{

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}

为什么名称空间块中有using语句?如果您将它们移到外部,我相信它应该构建得很好。

为什么在名称空间块中有using语句?如果你把它们移到外面,我相信它会建得很好。

试试:

global::System.DateTime dateTime;
或者以另一种方式:

using SystemAlias = System;
然后:

顺便说一句:把你的用法放在名称空间声明之前。

试试:

global::System.DateTime dateTime;
或者以另一种方式:

using SystemAlias = System;
然后:

顺便说一句:将您的使用放在名称空间声明之前。

使用系统中的系统。全球化指的是您的名称空间,因此这应该是另一个编译错误

如果您真的喜欢名称空间中的用法,我个人不喜欢这种做法,那么您应该使用global::extern别名,我想这就是它的名称

namespace ParlayRMS.Models.System
{
    using global::System;
    using global::System.Globalization;

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}
正在使用System.Globalization的系统引用了您的命名空间,因此这应该是另一个编译错误

如果您真的喜欢名称空间中的用法,我个人不喜欢这种做法,那么您应该使用global::extern别名,我想这就是它的名称

namespace ParlayRMS.Models.System
{
    using global::System;
    using global::System.Globalization;

    public class MaintenanceInfo
    {
        public MaintenanceInfo()
        {
            IsDownTime = false;
            TimeFrom = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            TimeTo = DateTime.Now.ToString(CultureInfo.InvariantCulture);
        }
        public bool IsDownTime { get; set; }
        public string TimeFrom { get; set; }
        public string TimeTo { get; set; }
    }
}
试一试

然后在代码中:

TimeFrom = NETDateTime.Now.ToString(CultureInfo.InvariantCulture);
试一试

然后在代码中:

TimeFrom = NETDateTime.Now.ToString(CultureInfo.InvariantCulture);

为什么必须在名称空间中使用名称系统?因为我必须遵循styleCop规则styleCop不是标准,它只是一个好工具。请随意更改其配置-只要您与团队成员保持一致StyleCop从不说您应该命名名称空间系统。它只是说using应该放在您的名称空间中,但我不关心这一点——我是在问为什么您需要命名您的名称空间系统。为什么你不能改变它呢?所以基本上你有一个愚蠢的规则和一个愚蠢的命名模式的组合,在你脸上爆炸。当事情以意想不到的方式结合在一起时总是很有趣的:为什么必须在名称空间中使用名称系统?因为我必须遵循styleCop规则styleCop不是一个标准,它只是一个好工具。请随意更改其配置-只要您与团队成员保持一致StyleCop从不说您应该命名名称空间系统。它只是说using应该放在您的名称空间中,但我不关心这一点——我是在问为什么您需要命名您的名称空间系统。为什么你不能改变它呢?所以基本上你有一个愚蠢的规则和一个愚蠢的命名模式的组合,在你脸上爆炸。当事情以意外的方式组合在一起时总是很有趣的:但它会失败StyleCop rule.StyleCop要求您将using语句放入命名空间块中?如果你把它们放在那里,它们甚至没有引用正确的名称空间。他们指的是ParlayRMS.Models.System.System和ParlayRMS.Models.System.System.Globalization实际上根据VS 2012,他们指的是ParlayRMS.Models.System和ParlayRMS.Models.System.Globalization。还有@Lulu,你真的,真的必须遵守StyleCop规则吗?但是它会失败StyleCop规则。StyleCop要求你把using语句放在名称空间块中?如果你把它们放在那里,它们甚至没有引用正确的名称空间。他们指的是ParlayRMS.Models.System.System和ParlayRMS.Models.System.System.Globalization实际上根据VS 2012,他们指的是ParlayRMS.Models.System和ParlayRMS.Models.System.Globalization。还有@Lulu,你真的,真的必须遵守StyleCop规则吗?不行,系统指的是本地系统名称空间,而不是全局系统名称空间。不行,系统指的是本地系统名称空间,而不是全局系统名称空间。