Согласно рефлектора, SPWeb не запечатан в 2007 или 2010 году.
2007:
[SharePointPermission(SecurityAction.LinkDemand, ObjectModel=true),
SharePointPermission(SecurityAction.LinkDemand, ObjectModel=true),
SharePointPermission(SecurityAction.LinkDemand, ObjectModel=true),
SharePointPermission(SecurityAction.InheritanceDemand, ObjectModel=true)]
public class SPWeb : IDisposable, ISecurableObject
2010:
[SubsetCallableType,
ClientCallableType(Name="Web", ServerTypeId="{A489ADD2-5D3A-4de8-9445-49259462DCEB}", FactoryType=typeof(SPObjectFactory), ObjectIdentityPropertyName="CanonicalId"),
SharePointPermission(SecurityAction.InheritanceDemand, ObjectModel=true),
SharePointPermission(SecurityAction.LinkDemand, ObjectModel=true),
SharePointPermission(SecurityAction.LinkDemand, ObjectModel=true),
SharePointPermission(SecurityAction.LinkDemand, ObjectModel=true)]
public class SPWeb : SPSecurableObject, IDisposable
Однако в обеих версиях, класс имеет только внутренние конструкторы, поэтому в то время как Visual Studio позволит вам попробовать наследовать от класса, он не будет компилироваться:
типа «Microsoft.SharePoint .SPWeb» имеет никаких конструкторов не определены
Интересно. Если вы посмотрите на документы MSDN для этих классов, вы можете ясно видеть, что запечатанное ключевое слово не упоминается (как и для других закрытых классов в MSDN). –
@justin, это была разница между 2007 и 2010 годами, я обновил ответ –
Но даже если вы переключите документацию MSDN на WSS 3.0 (которая была WSS, используемая в SharePoint 2007), они все еще не выглядят закрытыми. –