从私有类返回列表类类型?

时间:2016-04-24 17:55:06

标签: c#

我想返回一个私有类类型的列表。假设这种情况:

class Article_GET
{
    public class Article
    {
         public string name {get; set;}
         public string description {get;set;}
    }
}

现在我有了另一个带有文章类的文件,在这个类中,我有方法GetArticles()创建了一个文章列表,可以访问ArticleArticle_GET中的public static List<Article_GET.Article> GetArticles() { return new Article_GET().GetArticle(); //Method in Article_GET } 类。检查:

Article_GET().GetArticle();

调用class Article_GET的类文章是一个dll包装器。现在有一个问题。如何看待public class Article_GET是私有的,所以我收到了这个错误:

  

可访问性不一致:返回类型列表列表GET.List&gt;比“List.GetList(字符串方法)&#39;”更难以访问。制品

&#39;原因应该是internal。但我希望这个类必须只在dll程序集内部使用。我试图提出Article_GET.Article但同样的问题,我无法从私有/内部类向公共方法返回namespace MyCompany.Product.Article.GET.Article { internal class Article { public string name {get;set;} public string description {get;set;} } class Article_GET { public class RootObject { public List<Article> article { get; set; } } public List<Article> GetArticle() { var obj = JsonConvert.DeserializeObject<RootObject>("json"); return obj.article; } } } 的特定列表。

我该如何解决这个问题?

更新(建议使用新结构):

namespace MyCompany.Product.Article
{
    public class Article
    {
        public static List<GET.Article.Article> GetArticles()
        {
            return new Article_GET().GetArticle();
        }
    }
}

和包装器:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

</android.support.design.widget.CoordinatorLayout>

1 个答案:

答案 0 :(得分:3)

Article移到课程Article_GET

之外
internal class Article_GET
{
}

public class Article
{
     public string name {get; set;}
     public string description {get;set;}
}