我来自 PHP,我认为我不了解如何正确浏览数据结构。SPFieldCollection.Add的文档非常清楚它需要什么样的参数,所以我写了一个类:
namespace SPAPI.Lists.Add
{
class AddParams
{
public SPFieldType type { get; set; }
public bool required { get; set; }
}
}
从那里我创建了一个列表:
public Create(SPFeatureReceiverProperties properties, Dictionary<string, List<AddParams>> columns, string name, string description, SPListTemplateType type)
{
SPSite siteCollection = properties.Feature.Parent as SPSite;
if (siteCollection != null)
{
SPWeb web = siteCollection.RootWeb;
web.Lists.Add(name, description, type);
web.Update();
// Add the new list and the new content.
SPList spList = web.Lists[name];
foreach(KeyValuePair<string, List<AddParams>> col in columns){
spList.Fields.Add(col.Key, col.Value[0], col.Value[1]);
}
// More Code ...
}
}
问题是,它不喜欢col.Value[0]
,col.Value[1]
因为一个不是 a SPFieldType
,另一个不是boolean
严格定义的 a 。我认为我的想法是正确的,但我正在寻找有关如何完成这项工作的指导。
因为 C# 有类型提示,所以我假设它会使用AddParams
类来查看类型。
这个想法是传递一系列参数并基于这些参数创建一个新列表。
这更像是一个 C# 问题和数据结构迭代问题,然后是一个 SP 开发问题。