Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[c#] Dynamisch objecten instantieren

Pagina: 1
Acties:

  • Bint
  • Registratie: Juli 2002
  • Laatst online: 16-11 00:28
Op dit moment ben ik bezig met een sharepoint migratie, versie 2003 naar 2007. Nu heb ik van zo'n 400 sites alle aanwezige webpartInfo verzameld, dit staat in xml.

Nu kan ik deze file uitlezen en met behulp van wat cases al die verschillende soorten webparts weer toevoegen, maar ik heb niet zoveel zin om 14 verschillende case statements te schrijven: dit moet slimmer kunnen.

Is het mogelijk om adv aangeleverde text een object te instantieren? voorbeeldje:

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2" ID="cb2c9a5d-7ce2-41c8-b42d-c69a944c6279">
  <Title>Site Image</Title> 
  <FrameType>None</FrameType> 
  <Description>Use to display pictures and photos.</Description> 
  <IsIncluded>true</IsIncluded> 
  <ZoneID>Right</ZoneID> 
  <PartOrder>1</PartOrder> 
  <FrameState>Normal</FrameState> 
  <Height /> 
  <Width /> 
  <AllowRemove>true</AllowRemove> 
  <AllowZoneChange>true</AllowZoneChange> 
  <AllowMinimize>true</AllowMinimize> 
  <IsVisible>true</IsVisible> 
  <DetailLink /> 
  <HelpLink /> 
  <Dir>Default</Dir> 
  <PartImageSmall /> 
  <MissingAssembly /> 
  <PartImageLarge /> 
  <IsIncludedFilter /> 
  <ExportControlledProperties>false</ExportControlledProperties> 
  <ConnectionID>00000000-0000-0000-0000-000000000000</ConnectionID> 
  <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly> 
  <TypeName>Microsoft.SharePoint.WebPartPages.ImageWebPart</TypeName> 
  <ImageLink xmlns="http://schemas.microsoft.com/WebPart/v2/Image">/_layouts/images/homepage.gif</ImageLink> 
  <VerticalAlignment xmlns="http://schemas.microsoft.com/WebPart/v2/Image">Middle</VerticalAlignment> 
  <HorizontalAlignment xmlns="http://schemas.microsoft.com/WebPart/v2/Image">Center</HorizontalAlignment> 
  <BackgroundColor xmlns="http://schemas.microsoft.com/WebPart/v2/Image">transparent</BackgroundColor> 
  </WebPart>


je ziet dat dit een webpart van type Microsoft.SharePoint.WebPartPages.ImageWebPart is. Hoe kan ik deze dynamisch instantieren en vervolgens aan de pagina toevoegen mbv het object model? zodat er eigenlijk de volgende code wordt uitgevoerd:
C#:
1
2
3
4
Microsoft.SharePoint.WebPartPages.ImageWebPart wp = new Microsoft.SharePoint.WebPartPages.ImageWebPart();
            wp.ImageLink = "bla";
            wp.ZoneID = "Right";
            wp.bla1 = "bla";

[ Voor 5% gewijzigd door Bint op 16-02-2008 11:51 ]

Memories of yesterday, will grow, but never die


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Activator.CreateInstance

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Vanuit je XML die je post zie je de assembly. Die zou je via de AppDomain kunnen laden: AppDomain.Load().

Daarna zou je hem kunnen creeeren: Activator.CreateInstance().

Daarna zal je je properties waarschijnlijk moeten setten via Reflection.