首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保护等级问题,必须是公开的

保护等级问题,必须是公开的
EN

Stack Overflow用户
提问于 2020-07-01 15:24:50
回答 1查看 52关注 0票数 0

我试图使我的所有课程在我的项目内部,只有少数类是公开的,这将是可以从其他项目访问。

"TResponse“是我的模型,它是内部类。我有“保护等级问题,必须公开”的通知。我如何将我的模型隐藏到外部,但仍然设法在内部使用?

代码语言:javascript
运行
复制
internal class _DeserializeResponse<TResponse> where TResponse : IResponsable
{
    public TResponse Deserialize(string xmlResponse)
    {
        XmlSerializer xmlSerializer = new XmlSerializer(typeof(TResponse));

        using (StringReader sr = new StringReader(xmlResponse))
        {
            var _return = (TResponse)xmlSerializer.Deserialize(sr);
            return _return;
        }
    }
}

编辑*

这是你最好的样品。我注意到我收到了如下所示的通知,即“不一致的可访问性返回类型”"MyModel“比方法"Manager.Test()”更难访问。

显然,我不能从公共方法中返回非公开类。正如我所理解的,实现这一点的唯一方法是MyModel应该是公开的,除非我像Legacy 建议的那样使用属性,否则就无法隐藏它。

代码语言:javascript
运行
复制
using System.Xml.Serialization;

namespace AutoEurope.Concrete
{
    internal class Test<TResponse> where TResponse : ITest
    {
        public TResponse Deserialize(string xmlResponse)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(TResponse));

            using (StringReader sr = new StringReader(xmlResponse))
            {
                var _return = (TResponse)xmlSerializer.Deserialize(sr);
                return _return;
            }
        }
    }
    internal interface ITest
    {
    }

    internal class MyModel: ITest
    {

    }

    public class Manager
    {
        public MyModel Test() // inconsistent accessibility return type "MyModel" is less accessible than method "Manager.Test()"
        {
            var test = new Test<MyModel>();
            return test.Deserialize("sample");
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 15:27:50

如果你的意图只是隐藏,但你不会介意有人发现它..。然后我建议使用EditorBrowsableAttribute

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62680147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档