Guys,
here's a simple way to add a string to a string array (C#):
String[] Sorting;
foreach (String StringObj in StringObjCollection)
{
Array.Resize(ref Sorting, Sorting.Length + 1);
Sorting[Sorting.Length - 1] = StringObj;
}
Friday, March 14, 2014
C# - Resizing Arrays - Add String to String Array
Labels:
Arrays,
Beginners,
C#,
CSharp,
Resizing Arrays,
String Array,
Strings
C# - CollectionBase - Sorting a collection
Based on my blog post about creating a collection using the CollectionBase class yesterday, I figured out, how to sort a collection based on the class CollectionBase.
public List<MyClass> SortByColumnSortColumn()
{
List<MyClass> SortedList = this.List.Cast<MyClass>().ToList();
SortedList = SortedList.OrderBy(x => x.SortColumn).ToList();
return SortedList;
}
public List<MyClass> SortByColumnSortColumn()
{
List<MyClass> SortedList = this.List.Cast<MyClass>().ToList();
SortedList = SortedList.OrderBy(x => x.SortColumn).ToList();
return SortedList;
}
Labels:
Beginners,
C#,
Collection,
CollectionBase,
CSharp,
Sorting
Thursday, March 13, 2014
C# - Creating a Collection class
Creating a simple Collection class is very easy.
Assuming we have a class like this and want to create a collection class from it...
public class MyClass
{
public string Name;
public MyClass()
{
}
}
We can easily create a collection of it by using the CollectionBase class in the .NET Framework.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace My_Project.Classes
{
public class MyClassCollection : System.Collections.CollectionBase
{
#region Variables
#endregion
#region Properties
#endregion
#region Constructors
#endregion
#region Methods
public void Add(My_Project.Classes.MyClass NewMyClassObject)
{
List.Add(NewMyClassObject);
}
public void Remove(int index)
{
// Check to see if there is a MyClass at the supplied index.
if (index > Count - 1 || index < 0)
// If no MyClass exists, a messagebox is shown and the operation
// is cancelled.
{
throw new Exception();
}
else
{
List.RemoveAt(index);
}
}
public My_Project.Classes.MyClass Item(int Index)
{
// The appropriate item is retrieved from the List object and
// explicitly cast to the MyClass type, then returned to the
// caller.
return (My_Project.Classes.MyClass)List[Index];
}
#endregion
}
}
Now we can use the Collection class:
// create MyClass Object 1:
MyClass MyClassObject1 = new MyClass();
//create MyClass Object 2:
MyClass MyClassObject2 = new MyClass();
//creating the collection object:
MyClassCollection Col = new MyClassCollection();
//adding both objects to the collection
Col.Add(MyClassObject2);
//removing an object from the collection:
Col.Remove(1);
//getting the item object from a collection
MyClass NewObject = Col.Item(0);
Here is a good walkthrough from Microsoft:
http://msdn.microsoft.com/en-us/library/xth2y6ft(v=vs.71).aspx
Labels:
Beginners,
C#,
Class,
Collection,
CollectionBase,
CSharp
SharePoint - Internal Names List
Here is a list of internal field names in SharePoint.
Document Library fields
Document Library fields
Display Name | Internal Name | GUID | Type |
ID | ID | {1d22ea11-1e32-424e-89ab-9fedbadb6ce1} | Counter |
Content Type ID | ContentTypeId | {03e45e84-1992-4d42-9116-26f756012634} | ContentTypeId |
Content Type | ContentType | {c042a256-787d-4a6f-8a8a-cf6ab767f12d} | Text |
Created | Created | {8c06beca-0777-48f7-91c7-6da68bc07b69} | DateTime |
Created By | Author | {1df5e554-ec7e-46a6-901d-d85a3881cb18} | User |
Modified | Modified | {28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f} | DateTime |
Modified By | Editor | {d31655d1-1d5b-4511-95a1-7a09e9b75bf2} | User |
Has Copy Destinations | _HasCopyDestinations | {26d0756c-986a-48a7-af35-bf18ab85ff4a} | Boolean |
Copy Source | _CopySource | {6b4e226d-3d88-4a36-808d-a129bf52bccf} | Text |
Approval Status | _ModerationStatus | {fdc3b2ed-5bf2-4835-a4bc-b885f3396a61} | ModStat |
Approver Comments | _ModerationComments | {34ad21eb-75bd-4544-8c73-0e08330291fe} | Note |
URL Path | FileRef | {94f89715-e097-4e8b-ba79-ea02aa8b7adb} | Lookup |
Path | FileDirRef | {56605df6-8fa1-47e4-a04c-5b384d59609f} | Lookup |
Modified | Last_x0020_Modified | {173f76c8-aebd-446a-9bc9-769a2bd2c18f} | Lookup |
Created | Created_x0020_Date | {998b5cff-4a35-47a7-92f3-3914aa6aa4a2} | Lookup |
File Size | File_x0020_Size | {8fca95c0-9b7d-456f-8dae-b41ee2728b85} | Lookup |
Item Type | FSObjType | {30bb605f-5bae-48fe-b4e3-1f81d9772af9} | Lookup |
Effective Permissions Mask | PermMask | {ba3c27ee-4791-4867-8821-ff99000bac98} | Computed |
ID of the User who has the item Checked Out | CheckedOutUserId | {a7b731a3-1df1-4d74-a5c6-e2efba617ae2} | Lookup |
Is Checked out to local | IsCheckedoutToLocal | {cfaabd0f-bdbd-4bc2-b375-1e779e2cad08} | Lookup |
Checked Out To | CheckoutUser | {3881510a-4e4a-4ee8-b102-8ee8e2d0dd4b} | User |
Name | FileLeafRef | {8553196d-ec8d-4564-9861-3dbe931050c8} | File |
Unique Id | UniqueId | {4b7403de-8d94-43e8-9f0f-137a3e298126} | Lookup |
ProgId | ProgId | {c5c4b81c-f1d9-4b43-a6a2-090df32ebb68} | Lookup |
ScopeId | ScopeId | {dddd2420-b270-4735-93b5-92b713d0944d} | Lookup |
Virus Status | VirusStatus | {4a389cb9-54dd-4287-a71a-90ff362028bc} | Lookup |
Checked Out To | CheckedOutTitle | {9d4adc35-7cc8-498c-8424-ee5fd541e43a} | Lookup |
Check In Comment | _CheckinComment | {58014f77-5463-437b-ab67-eec79532da67} | Lookup |
Checked Out To | LinkCheckedOutTitle | {e2a15dfd-6ab8-4aec-91ab-02f6b64045b0} | Computed |
Document Modified By | Modified_x0020_By | {822c78e3-1ea9-4943-b449-57863ad33ca9} | Text |
Document Created By | Created_x0020_By | {4dd7e525-8d6b-4cb4-9d3e-44ee25f973eb} | Text |
File Type | File_x0020_Type | {39360f11-34cf-4356-9945-25c44e68dade} | Text |
HTML File Type | HTML_x0020_File_x0020_Type | {0c5e0085-eb30-494b-9cdd-ece1d3c649a2} | Text |
Source Url | _SourceUrl | {c63a459d-54ba-4ab7-933a-dcf1c6fadec2} | Text |
Shared File Index | _SharedFileIndex | {034998e9-bf1c-4288-bbbd-00eacfc64410} | Text |
Edit Menu Table Start | _EditMenuTableStart | {3c6303be-e21f-4366-80d7-d6d0a3b22c7a} | Computed |
Edit Menu Table End | _EditMenuTableEnd | {2ea78cef-1bf9-4019-960a-02c41636cb47} | Computed |
Name | LinkFilenameNoMenu | {9d30f126-ba48-446b-b8f9-83745f322ebe} | Computed |
Name | LinkFilename | {5cc6dc79-3710-4374-b433-61cb4a686c12} | Computed |
Type | DocIcon | {081c6e4c-5c14-4f20-b23e-1a71ceb6a67c} | Computed |
Server Relative URL | ServerUrl | {105f76ce-724a-4bba-aece-f81f2fce58f5} | Computed |
Encoded Absolute URL | EncodedAbsUrl | {7177cfc7-f399-4d4d-905d-37dd51bc90bf} | Computed |
Name | BaseName | {7615464b-559e-4302-b8e2-8f440b913101} | Computed |
File Size | FileSizeDisplay | {78a07ba4-bda8-4357-9e0f-580d64487583} | Computed |
Property Bag | MetaInfo | {687c7f94-686a-42d3-9b67-2782eac4b4f8} | Lookup |
Level | _Level | {43bdd51b-3c5b-4e78-90a8-fb2087f71e70} | Integer |
Is Current Version | _IsCurrentVersion | {c101c3e7-122d-4d4d-bc34-58e94a38c816} | Boolean |
Select | SelectTitle | {b1f7969b-ea65-42e1-8b54-b588292635f2} | Computed |
Select | SelectFilename | {5f47e085-2150-41dc-b661-442f3027f552} | Computed |
Edit | Edit | {503f1caa-358e-4918-9094-4a2cdc4bc034} | Computed |
owshiddenversion | owshiddenversion | {d4e44a66-ee3a-4d02-88c9-4ec5ff3f4cd5} | Integer |
UI Version | _UIVersion | {7841bf41-43d0-4434-9f50-a673baef7631} | Integer |
Version | _UIVersionString | {dce8262a-3ae9-45aa-aab4-83bd75fb738a} | Text |
Instance ID | InstanceID | {50a54da4-1528-4e67-954a-e2d24f1e9efb} | Integer |
Order | Order | {ca4addac-796f-4b23-b093-d2a3f65c0774} | Number |
GUID | GUID | {ae069f25-3ac2-4256-b9c3-15dbc15da0e0} | Guid |
Workflow Version | WorkflowVersion | {f1e020bc-ba26-443f-bf2f-b68715017bbc} | Integer |
Workflow Instance ID | WorkflowInstanceID | {de8beacf-5505-47cd-80a6-aa44e7ffe2f4} | Guid |
Source Version (Converted Document) | ParentVersionString | {bc1a8efb-0f4c-49f8-a38f-7fe22af3d3e0} | Lookup |
Source Name (Converted Document) | ParentLeafName | {774eab3a-855f-4a34-99da-69dc21043bec} | Lookup |
Title | Title | {fa564e0f-0c70-4ab9-b863-0177e6ddd247} | Text |
Template Link | TemplateUrl | {4b1bf6c6-4f39-45ac-acd5-16fe7a214e5e} | Text |
Html File Link | xd_ProgID | {cd1ecb9f-dd4e-4f29-ab9e-e9ff40048d64} | Text |
Is Signed | xd_Signature | {fbf29b2d-cae5-49aa-8e0a-29955b540122} | Boolean |
Merge | Combine | {e52012a0-51eb-4c0c-8dfb-9b8a0ebedcb6} | Computed |
Relink | RepairDocument | {5d36727b-bcb2-47d2-a231-1f0bc63b7439} | Computed |
Custom list fields
Display Name | Internal Name | GUID | Type |
ID | ID | {1d22ea11-1e32-424e-89ab-9fedbadb6ce1} | Counter |
Content Type ID | ContentTypeId | {03e45e84-1992-4d42-9116-26f756012634} | ContentTypeId |
Content Type | ContentType | {c042a256-787d-4a6f-8a8a-cf6ab767f12d} | Text |
Title | Title | {fa564e0f-0c70-4ab9-be6ddd247} | Text |
Modified | Modified | {28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f} | DateTime |
Created | Created | {8c06beca-0777-48f7-91c7-6da68bc07b69} | DateTime |
Created By | Author | {1df5e554-ec7e-46a6-901d-d85a3881cb18} | User |
Modified By | Editor | {d31655d1-1d5b-4511-95a1-7a09e9b75bf2} | User |
Has Copy Destinations | _HasCopyDestinations | {26d0756c-986a-48a7-af35-bf18ab85ff4a} | Boolean |
Copy Source | _CopySource | {6b4e226d-3d88-4a36-808d-a129bf52bccf} | Text |
owshiddenversion | owshiddenversion | {d4e44a66-ee3a-4d02-88c9-4ec5ff3f4cd5} | Integer |
Workflow Version | WorkflowVersion | {f1e020bc-ba26-443f-bf2f-b68715017bbc} | Integer |
UI Version | _UIVersion | {7841bf41-43d0-4434-9f50-a673baef7631} | Integer |
Version | _UIVersionString | {dce8262a-3ae9-45aa-aab4-83bd75fb738a} | Text |
Attachments | Attachments | {67df98f4-9dec-48ff-a553-29bece9c5bf4} | Attachments |
Approval Status | _ModerationStatus | {fdc3b2ed-5bf2-4835-a4bc-b885f3396a61} | ModStat |
Approver Comments | _ModerationComments | {34ad21eb-75bd-4544-8c73-0e08330291fe} | Note |
Edit | Edit | {503f1caa-358e-4918-9094-4a2cdc4bc034} | Computed |
Title | LinkTitleNoMenu | {bc91a437-52e7-49e1-8c4e-4698904b2b6d} | Computed |
Title | LinkTitle | {82642ec8-ef9b-478f-acf9-31f7d45fbc31} | Computed |
Select | SelectTitle | {b1f7969b-ea65-42e1-8b54-b588292635f2} | Computed |
Instance ID | InstanceID | {50a54da4-1528-4e67-954a-e2d24f1e9efb} | Integer |
Order | Order | {ca4addac-796f-4b23-b093-d2a3f65c0774} | Number |
GUID | GUID | {ae069f25-3ac2-4256-b9c3-15dbc15da0e0} | Guid |
Workflow Instance ID | WorkflowInstanceID | {de8beacf-5505-47cd-80a6-aa44e7ffe2f4} | Guid |
URL Path | FileRef | {94f89715-e097-4e8b-ba79-ea02aa8b7adb} | Lookup |
Path | FileDirRef | {56605df6-8fa1-47e4-a04c-5b384d59609f} | Lookup |
Modified | Last_x0020_Modified | {173f76c8-aebd-446a-9bc9-769a2bd2c18f} | Lookup |
Created | Created_x0020_Date | {998b5cff-4a35-47a7-92f3-3914aa6aa4a2} | Lookup |
Item Type | FSObjType | {30bb605f-5bae-48fe-b4e3-1f81d9772af9} | Lookup |
Effective Permissions Mask | PermMask | {ba3c27ee-4791-4867-8821-ff99000bac98} | Computed |
Name | FileLeafRef | {8553196d-ec8d-4564-9861-3dbe931050c8} | File |
Unique Id | UniqueId | {4b7403de-8d94-43e8-9f0f-137a3e298126} | Lookup |
ProgId | ProgId | {c5c4b81c-f1d9-4b43-a6a2-090df32ebb68} | Lookup |
ScopeId | ScopeId | {dddd2420-b270-4735-93b5-92b713d0944d} | Lookup |
File Type | File_x0020_Type | {39360f11-34cf-4356-9945-25c44e68dade} | Text |
HTML File Type | HTML_x0020_File_x0020_Type | {4ef1b78f-fdba-48dc-b8ab-3fa06a0c9804} | Computed |
Edit Menu Table Start | _EditMenuTableStart | {3c6303be-e21f-4366-80d7-d6d0a3b22c7a} | Computed |
Edit Menu Table End | _EditMenuTableEnd | {2ea78cef-1bf9-4019-960a-02c41636cb47} | Computed |
Name | LinkFilenameNoMenu | {9d30f126-ba48-446b-b8f9-83745f322ebe} | Computed |
Name | LinkFilename | {5cc6dc79-3710-4374-b433-61cb4a686c12} | Computed |
Type | DocIcon | {081c6e4c-5c14-4f20-b23e-1a71ceb6a67c} | Computed |
Server Relative URL | ServerUrl | {105f76ce-724a-4bba-aece-f81f2fce58f5} | Computed |
Encoded Absolute URL | EncodedAbsUrl | {7177cfc7-f399-4d4d-905d-37dd51bc90bf} | Computed |
File Name | BaseName | {7615464b-559e-4302-b8e2-8f440b913101} | Computed |
Property Bag | MetaInfo | {687c7f94-686a-42d3-9b67-2782eac4b4f8} | Lookup |
Level | _Level | {43bdd51b-3c5b-4e78-90a8-fb2087f71e70} | Integer |
Is Current Version | _IsCurrentVersion | {c101c3e7-122d-4d4d-bc34-58e94a38c816} | Boolean |
Labels:
C#,
CSharp,
Internal Field Names,
SharePoint 2010
Tuesday, March 11, 2014
C# - SharePoint 2010 - Building a SharePoint 2010 feature, which creates new content types with new site columns programmatically
Hi guys,
I thought, I try to write in English instead of German language now to reach more people. Sorry, for my bad english in advance. :-)
This code gives you a nice way to create new content types with new site columns programmatically in a SharePoint 2010 Feature (C# / Visual Studio 2010). The difficulty is to create a new site column from a managed metadata service. This code took me 1 day, but it works fine now. Have fun with it.
If you have any hints, to improve the code please write a comment below. Thanks. :-)
If you have any hints, to improve the code please write a comment below. Thanks. :-)
const string TermStore = "Managed Metadata Service";
const string TermStoreGroup = "TermStoreGroup";
object[][] Data = new object[][]
{
//new object[] { 0="Content Type Name", 1="Field Name", 2="Field Type", 3="Required", 4="AllowMultipleValues" }
new object[] { "Content Type Name", "Property 1", "TaxonomyFieldType", true, false },
new object[] { "Content Type Name", "Property 2", "TaxonomyFieldType", true, false },
new object[] { "Content Type Name", "Property 3", "TaxonomyFieldType", false, false },
new object[] { "Content Type Name", "Property 4", "TaxonomyFieldType", false, false },
new object[] { "Content Type Name", "Property 5", SPFieldType.Text, false, null },
new object[] { "Content Type Name", "Property 6", SPFieldType.DateTime, true, null }
};
static SPField AddField(string title, SPFieldType type, Boolean required, SPFieldCollection fields)
{
// If the field is not in the collection,
if (!fields.ContainsField(title))
{
// Add it.
fields.Add(title, type, required);
}
return fields.GetField(title);
}
static void AddFieldLink(SPField field, SPContentType contentType)
{
// Is the FieldLink in the collection?
SPFieldLink fieldLink = contentType.FieldLinks[field.Id];
if (fieldLink == null) // No, so add it.
{
fieldLink = new SPFieldLink(field);
contentType.FieldLinks.Add(fieldLink);
}
}
static void AddFieldLink(TaxonomyField field, SPContentType contentType)
{
SPFieldLink fieldLink = new SPFieldLink(field);
if (contentType.FieldLinks[fieldLink.Id] == null)
{
contentType.FieldLinks.Add(fieldLink);
}
}
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
try
{
using (SPWeb spWeb = properties.Feature.Parent as SPWeb)
{
foreach (object[] CurrentData in Data)
{
SPContentType contentType;
if (spWeb.ContentTypes[CurrentData[0].ToString()] == null)
{
contentType = new SPContentType(spWeb.ContentTypes["Document"], spWeb.ContentTypes, CurrentData[0].ToString());
contentType.Group = "Content Type Group";
spWeb.ContentTypes.Add(contentType);
spWeb.Update();
}
else
{
contentType = spWeb.ContentTypes[CurrentData[0].ToString()];
}
if (CurrentData[2].ToString() == "TaxonomyFieldType")
{
using (SPSite site = new SPSite(spWeb.Site.ID))
{
TaxonomySession taxonomySession = new TaxonomySession(site);
TermStore termStore = taxonomySession.TermStores[TermStore];
Group termStoreGroup = termStore.Groups[TermStoreGroup];
TaxonomyField NewField;
if (spWeb.Fields.ContainsField(CurrentData[1].ToString()) == false || (spWeb.Fields.ContainsField(CurrentData[1].ToString()) == true && spWeb.Fields[CurrentData[1].ToString()].TypeAsString != CurrentData[2].ToString()))
{
TermSet termSet = termStoreGroup.TermSets[CurrentData[1].ToString()];
NewField = (TaxonomyField)spWeb.Fields.CreateNewField("TaxonomyFieldType", CurrentData[1].ToString());
NewField.SspId = termSet.TermStore.Id;
NewField.Group = termStoreGroup.Name;
NewField.TermSetId = termSet.Id;
NewField.AllowMultipleValues = (Boolean)CurrentData[4];
NewField.TargetTemplate = string.Empty;
NewField.CreateValuesInEditForm = false;
NewField.Open = false;
NewField.AnchorId = Guid.Empty;
NewField.Title = CurrentData[1].ToString();
NewField.Required = (Boolean)CurrentData[3];
spWeb.Fields.Add(NewField);
spWeb.Update();
NewField = (TaxonomyField)spWeb.Fields[CurrentData[1].ToString()];
}
else
{
NewField = (TaxonomyField)spWeb.Fields[CurrentData[1].ToString()];
}
AddFieldLink(NewField, contentType);
}
}
else
{
SPField NewField = AddField(CurrentData[1].ToString(), (SPFieldType)CurrentData[2], (Boolean)CurrentData[3], spWeb.Fields);
AddFieldLink(NewField, contentType);
}
contentType.Update();
}
}
}
catch (Exception exp)
{
throw;
}
}
const string TermStoreGroup = "TermStoreGroup";
object[][] Data = new object[][]
{
//new object[] { 0="Content Type Name", 1="Field Name", 2="Field Type", 3="Required", 4="AllowMultipleValues" }
new object[] { "Content Type Name", "Property 1", "TaxonomyFieldType", true, false },
new object[] { "Content Type Name", "Property 2", "TaxonomyFieldType", true, false },
new object[] { "Content Type Name", "Property 3", "TaxonomyFieldType", false, false },
new object[] { "Content Type Name", "Property 4", "TaxonomyFieldType", false, false },
new object[] { "Content Type Name", "Property 5", SPFieldType.Text, false, null },
new object[] { "Content Type Name", "Property 6", SPFieldType.DateTime, true, null }
};
static SPField AddField(string title, SPFieldType type, Boolean required, SPFieldCollection fields)
{
// If the field is not in the collection,
if (!fields.ContainsField(title))
{
// Add it.
fields.Add(title, type, required);
}
return fields.GetField(title);
}
static void AddFieldLink(SPField field, SPContentType contentType)
{
// Is the FieldLink in the collection?
SPFieldLink fieldLink = contentType.FieldLinks[field.Id];
if (fieldLink == null) // No, so add it.
{
fieldLink = new SPFieldLink(field);
contentType.FieldLinks.Add(fieldLink);
}
}
static void AddFieldLink(TaxonomyField field, SPContentType contentType)
{
SPFieldLink fieldLink = new SPFieldLink(field);
if (contentType.FieldLinks[fieldLink.Id] == null)
{
contentType.FieldLinks.Add(fieldLink);
}
}
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
try
{
using (SPWeb spWeb = properties.Feature.Parent as SPWeb)
{
foreach (object[] CurrentData in Data)
{
SPContentType contentType;
if (spWeb.ContentTypes[CurrentData[0].ToString()] == null)
{
contentType = new SPContentType(spWeb.ContentTypes["Document"], spWeb.ContentTypes, CurrentData[0].ToString());
contentType.Group = "Content Type Group";
spWeb.ContentTypes.Add(contentType);
spWeb.Update();
}
else
{
contentType = spWeb.ContentTypes[CurrentData[0].ToString()];
}
if (CurrentData[2].ToString() == "TaxonomyFieldType")
{
using (SPSite site = new SPSite(spWeb.Site.ID))
{
TaxonomySession taxonomySession = new TaxonomySession(site);
TermStore termStore = taxonomySession.TermStores[TermStore];
Group termStoreGroup = termStore.Groups[TermStoreGroup];
TaxonomyField NewField;
if (spWeb.Fields.ContainsField(CurrentData[1].ToString()) == false || (spWeb.Fields.ContainsField(CurrentData[1].ToString()) == true && spWeb.Fields[CurrentData[1].ToString()].TypeAsString != CurrentData[2].ToString()))
{
TermSet termSet = termStoreGroup.TermSets[CurrentData[1].ToString()];
NewField = (TaxonomyField)spWeb.Fields.CreateNewField("TaxonomyFieldType", CurrentData[1].ToString());
NewField.SspId = termSet.TermStore.Id;
NewField.Group = termStoreGroup.Name;
NewField.TermSetId = termSet.Id;
NewField.AllowMultipleValues = (Boolean)CurrentData[4];
NewField.TargetTemplate = string.Empty;
NewField.CreateValuesInEditForm = false;
NewField.Open = false;
NewField.AnchorId = Guid.Empty;
NewField.Title = CurrentData[1].ToString();
NewField.Required = (Boolean)CurrentData[3];
spWeb.Fields.Add(NewField);
spWeb.Update();
NewField = (TaxonomyField)spWeb.Fields[CurrentData[1].ToString()];
}
else
{
NewField = (TaxonomyField)spWeb.Fields[CurrentData[1].ToString()];
}
AddFieldLink(NewField, contentType);
}
}
else
{
SPField NewField = AddField(CurrentData[1].ToString(), (SPFieldType)CurrentData[2], (Boolean)CurrentData[3], spWeb.Fields);
AddFieldLink(NewField, contentType);
}
contentType.Update();
}
}
}
catch (Exception exp)
{
throw;
}
}
Labels:
C#,
Content Type,
CSharp,
Feature,
Managed Metadata,
SharePoint 2010,
Site Column
Friday, March 7, 2014
Visual Studio 2010 - SharePoint 2010 - Debugging - "The breakpoint will not currently be hit. No symbols have been loaded for this document"
SharePoint Solutions zu debuggen kann manchmal schwierig sein. Ich stoplerte über das Problem, dass der Debugger an der markierten Stelle nicht anhielt, sondern stattdessen nur die Meldung brachte: "The breakpoint will not currently be hit. No symbols have been loaded for this document". "Hmm, wieso funktioniert der Debugger nicht. Der müßte doch da rein laufen. Und jetzt? Was tun?", waren meine ersten Gedanken.
Das Problem ist aber relativ schnell gelöst.
Über "Project" im Menü auf den "Project - Properties" navigieren:
Auf den Punkt "SharePoint" navigieren und dort unter "Active Deployment Configuration" den Punkt "No activation" auswählen.
Nun wird beim Starten des Projekts das Feature nicht automatisch aktiviert, sondern man muss es manuell aktivieren. Sobald das Feature manuell aktiviert wird, läuft der Debugger wie gewohnt.
Das ganze ist auch hier beschrieben:
Labels:
Debug,
Error,
SharePoint 2010,
Visual Studio 2010
Subscribe to:
Posts (Atom)