diff --git a/IISExpress/AppServer/applicationhost.config b/IISExpress/AppServer/applicationhost.config index 351a77d65..6c56a7b72 100644 --- a/IISExpress/AppServer/applicationhost.config +++ b/IISExpress/AppServer/applicationhost.config @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="utf-8"?> <!-- IIS configuration sections. @@ -17,9 +17,7 @@ %SYSTEMDRIVE% - The drive letter of %IIS_BIN% --> - <configuration> - <!-- The <configSections> section controls the registration of sections. @@ -58,7 +56,6 @@ <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> </sectionGroup> - <sectionGroup name="system.webServer"> <section name="asp" overrideModeDefault="Deny" /> <section name="caching" overrideModeDefault="Allow" /> @@ -117,7 +114,6 @@ </sectionGroup> </sectionGroup> </configSections> - <configProtectedData> <providers> <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" /> @@ -125,9 +121,7 @@ <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA4WoiRJ8KHwzAG8AgejPxEOO4/2Vhkolbwo/8gZeNdUDSD36m55hWv4uC9tr/MlKdnwRLL0NhT50Gccyftqz5xTZ0dg5FtvQhTw/he1NwexTKbV+I4Zrd+sZUqHZTsr7JiEr6OHGXL70qoISW5G2m9U8wKT3caPiDPNj2aAaYPLo=" /> </providers> </configProtectedData> - <system.applicationHost> - <applicationPools> <!-- <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> @@ -139,7 +133,6 @@ <processModel /> </applicationPoolDefaults> </applicationPools> - <!-- The <listenerAdapters> section defines the protocols with which the @@ -149,14 +142,13 @@ <listenerAdapters> <add name="http" /> </listenerAdapters> - <sites> <site name="NZBDrone" id="1" serverAutoStart="true"> <application path="/"> <virtualDirectory path="/" physicalPath="%NZBDRONE_PATH%\NZBDrone.Web" /> </application> <bindings> - <binding protocol="http" bindingInformation="*:8981:" /> + <binding protocol="http" bindingInformation="*:8989:" /> </bindings> </site> <siteDefaults> @@ -166,25 +158,16 @@ <applicationDefaults applicationPool="IISExpressAppPool" /> <virtualDirectoryDefaults allowSubDirConfig="true" /> </sites> - <webLimits /> - </system.applicationHost> - <system.webServer> - <serverRuntime /> - <asp scriptErrorSentToBrowser="true"> <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" /> <limits /> </asp> - - <caching enabled="true" enableKernelCache="true"> - </caching> - + <caching enabled="true" enableKernelCache="true"></caching> <cgi /> - <defaultDocument enabled="true"> <files> <add value="Default.htm" /> @@ -194,11 +177,8 @@ <add value="default.aspx" /> </files> </defaultDocument> - <directoryBrowse enabled="false" /> - <fastCgi /> - <!-- The <globalModules> section defines all native-code modules. @@ -244,7 +224,6 @@ <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" /> <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" /> </globalModules> - <httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" /> <dynamicTypes> @@ -262,7 +241,6 @@ <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression> - <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" /> <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" /> @@ -274,9 +252,7 @@ <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" /> <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" /> </httpErrors> - <httpLogging dontLog="false" /> - <httpProtocol> <customHeaders> <clear /> @@ -286,60 +262,39 @@ <clear /> </redirectHeaders> </httpProtocol> - <httpRedirect enabled="false" /> - - <httpTracing> - </httpTracing> - + <httpTracing></httpTracing> <isapiFilters> <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" /> <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" /> <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" /> </isapiFilters> - <odbcLogging /> - <security> - <access sslFlags="None" /> - <applicationDependencies> <application name="Active Server Pages" groupId="ASP" /> </applicationDependencies> - <authentication> - <anonymousAuthentication enabled="true" userName="" /> - <basicAuthentication enabled="false" /> - <clientCertificateMappingAuthentication enabled="false" /> - <digestAuthentication enabled="false" /> - - <iisClientCertificateMappingAuthentication enabled="false"> - </iisClientCertificateMappingAuthentication> - + <iisClientCertificateMappingAuthentication enabled="false"></iisClientCertificateMappingAuthentication> <windowsAuthentication enabled="false"> <providers> <add value="Negotiate" /> <add value="NTLM" /> </providers> </windowsAuthentication> - </authentication> - <authorization> <add accessType="Allow" users="*" /> </authorization> - <ipSecurity allowUnlisted="true" /> - <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true"> <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> </isapiCgiRestriction> - <requestFiltering> <fileExtensions allowUnlisted="true" applyToWebDAV="true"> <add fileExtension=".asa" allowed="false" /> @@ -399,11 +354,8 @@ <add segment="App_Browsers" /> </hiddenSegments> </requestFiltering> - </security> - <serverSideInclude ssiExecDisable="false" /> - <staticContent lockAttributes="isDocFooterFileName"> <mimeMap fileExtension=".323" mimeType="text/h323" /> <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" /> @@ -752,9 +704,7 @@ <mimeMap fileExtension=".z" mimeType="application/x-compress" /> <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" /> </staticContent> - <tracing> - <traceProviderDefinitions> <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"> <areas> @@ -791,7 +741,6 @@ </areas> </add> </traceProviderDefinitions> - <traceFailedRequests> <add path="*"> <traceAreas> @@ -803,11 +752,8 @@ <failureDefinitions statusCodes="200-999" /> </add> </traceFailedRequests> - </tracing> - <urlCompression /> - <validation /> <webdav> <globalSettings> @@ -817,14 +763,12 @@ <lockStores> <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%windir%\syswow64\inetsrv\webdav_simple_lock.dll" /> </lockStores> - </globalSettings> <authoring> <locks enabled="true" lockStore="webdav_simple_lock" /> </authoring> <authoringRules /> </webdav> - </system.webServer> <location path="" overrideMode="Allow"> <system.webServer> @@ -950,4 +894,4 @@ </handlers> </system.webServer> </location> -</configuration> +</configuration> \ No newline at end of file diff --git a/NzbDrone.Core.Test/DbConfigControllerTest.cs b/NzbDrone.Core.Test/DbConfigControllerTest.cs index 4e7f962aa..456c46a3c 100644 --- a/NzbDrone.Core.Test/DbConfigControllerTest.cs +++ b/NzbDrone.Core.Test/DbConfigControllerTest.cs @@ -5,8 +5,8 @@ using Gallio.Framework; using MbUnit.Framework; using MbUnit.Framework.ContractVerifiers; using Moq; -using NzbDrone.Core.Entities; using NzbDrone.Core.Providers; +using NzbDrone.Core.Repository; using SubSonic.Repository; namespace NzbDrone.Core.Test diff --git a/NzbDrone.Core.Test/EpisodeProviderTest.cs b/NzbDrone.Core.Test/EpisodeProviderTest.cs index 95e9c5c5e..c8f4fabac 100644 --- a/NzbDrone.Core.Test/EpisodeProviderTest.cs +++ b/NzbDrone.Core.Test/EpisodeProviderTest.cs @@ -21,11 +21,11 @@ namespace NzbDrone.Core.Test public class EpisodeProviderTest { [Test] - public void BulkAddSpeedTest() + public void RefreshEpisodeInfo() { //Arrange int seriesId = 71663; - int episodeCount = 500; + int episodeCount = 10; var fakeEpisodes = Builder<TvdbSeries>.CreateNew().With( c => c.Episodes = new List<TvdbEpisode>(Builder<TvdbEpisode>.CreateListOfSize(episodeCount). diff --git a/NzbDrone.Core.Test/Libs/Moq.pdb b/NzbDrone.Core.Test/Libs/Moq.pdb new file mode 100644 index 000000000..8ec9d72f8 Binary files /dev/null and b/NzbDrone.Core.Test/Libs/Moq.pdb differ diff --git a/NzbDrone.Core.Test/MediaFileProviderTests (X201's conflicted copy 2010-10-19).cs b/NzbDrone.Core.Test/MediaFileProviderTests (X201's conflicted copy 2010-10-19).cs new file mode 100644 index 000000000..a8825b3f6 --- /dev/null +++ b/NzbDrone.Core.Test/MediaFileProviderTests (X201's conflicted copy 2010-10-19).cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using Gallio.Framework; +using MbUnit.Framework; +using MbUnit.Framework.ContractVerifiers; +using Moq; +using Ninject; +using Ninject.Moq; +using NzbDrone.Core.Entities; +using NzbDrone.Core.Entities.Episode; +using NzbDrone.Core.Entities.Quality; +using NzbDrone.Core.Providers; +using SubSonic.Repository; + +namespace NzbDrone.Core.Test +{ + [TestFixture] + // ReSharper disable InconsistentNaming + public class MediaFileProviderTests + { + [Test] + public void scan_test() + { + //Arrange + var repository = new Mock<IRepository>(); + repository.Setup(c => c.Update(It.IsAny<EpisodeInfo>())).Verifiable(); + + var diskProvider = MockLib.GetStandardDisk(1, 2); + + var kernel = new MockingKernel(); + kernel.Bind<IDiskProvider>().ToConstant(diskProvider); + kernel.Bind<IRepository>().ToConstant(repository.Object); + kernel.Bind<IMediaFileProvider>().To<MediaFileProvider>(); + + var fakeSeries = new Series() + { + Path = MockLib.StandardSeries[0] + }; + + //Act + kernel.Get<IMediaFileProvider>().Scan(fakeSeries); + + //Assert + repository.Verify(c => c.Update(It.IsAny<EpisodeInfo>()), Times.Exactly(1 * 2)); + + + } + + [Test] + [Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1)] + [Row("Two.and.a.Half.Me.103.720p.HDTV.X264-DIMENSION", 1, 3)] + [Row("Chuck.4x05.HDTV.XviD-LOL", 4, 5)] + [Row("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", 3, 6)] + [Row("Degrassi.S10E27.WS.DSR.XviD-2HD", 10, 27)] + public void episode_parse(string path, int season, int episode) + { + var result = Parser.ParseBasicEpisode(path); + Assert.AreEqual(season, result.SeasonNumber); + Assert.AreEqual(episode, result.EpisodeNumber); + } + + [Test] + [Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.DVD)] + [Row("WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.Bluray)] + [Row("Two.and.a.Half.Men.S08E05.720p.HDTV.X264-DIMENSION", QualityTypes.HDTV)] + [Row("Chuck.S04E05.HDTV.XviD-LOL", QualityTypes.TV)] + [Row("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", QualityTypes.DVD)] + [Row("Degrassi.S10E27.WS.DSR.XviD-2HD", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", QualityTypes.WEBDL)] + [Row("Sonny.With.a.Chance.S02E15.720p", QualityTypes.HDTV)] + [Row("Sonny.With.a.Chance.S02E15.mkv", QualityTypes.HDTV)] + [Row("Sonny.With.a.Chance.S02E15.avi", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15.xvid", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15.divx", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15", QualityTypes.Unknown)] + public void quality_parse(string path, object quality) + { + var result = Parser.ParseQuality(path); + Assert.AreEqual(quality, result); + } + + [Test] + [Timeout(2)] + public void quality_parse() + { + var sw = Stopwatch.StartNew(); + var name = "WEEDSawdawdadawdawd\\awdawdawdadadad.mkv"; + var quality = QualityTypes.HDTV; + + for (int i = 0; i < 100000; i++) + { + Assert.AreEqual(quality, Parser.ParseQuality(name)); + } + + Console.WriteLine(sw.Elapsed.ToString()); + + + } + + } + + +} diff --git a/NzbDrone.Core.Test/MediaFileProviderTests.cs b/NzbDrone.Core.Test/MediaFileProviderTests.cs new file mode 100644 index 000000000..dbbb77012 --- /dev/null +++ b/NzbDrone.Core.Test/MediaFileProviderTests.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Gallio.Framework; +using MbUnit.Framework; +using MbUnit.Framework.ContractVerifiers; +using Moq; +using Ninject; +using Ninject.Moq; +using NzbDrone.Core.Providers; +using NzbDrone.Core.Repository; +using NzbDrone.Core.Repository.Quality; +using SubSonic.Repository; + +namespace NzbDrone.Core.Test +{ + [TestFixture] + // ReSharper disable InconsistentNaming + public class MediaFileProviderTests + { + [Test] + public void scan_test() + { + //Arrange + var repository = new Mock<IRepository>(); + repository.Setup(c => c.Update(It.IsAny<Episode>())).Verifiable(); + + var diskProvider = MockLib.GetStandardDisk(1, 2); + + var kernel = new MockingKernel(); + kernel.Bind<IDiskProvider>().ToConstant(diskProvider); + kernel.Bind<IRepository>().ToConstant(repository.Object); + kernel.Bind<IMediaFileProvider>().To<MediaFileProvider>(); + + var fakeSeries = new Series() + { + Path = MockLib.StandardSeries[0] + }; + + //Act + kernel.Get<IMediaFileProvider>().Scan(fakeSeries); + + //Assert + repository.Verify(c => c.Update(It.IsAny<Episode>()), Times.Exactly(1 * 2)); + + + } + + [Test] + [Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", 3, 1)] + [Row("Two.and.a.Half.Me.103.720p.HDTV.X264-DIMENSION", 1, 3)] + [Row("Chuck.4x05.HDTV.XviD-LOL", 4, 5)] + [Row("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", 3, 6)] + [Row("Degrassi.S10E27.WS.DSR.XviD-2HD", 10, 27)] + public void episode_parse(string path, int season, int episode) + { + var result = Parser.ParseEpisodeInfo(path); + Assert.Count(1, result); + Assert.AreEqual(season, result[0].SeasonNumber); + Assert.AreEqual(episode, result[0].EpisodeNumber); + } + + [Test] + [Row("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.DVD)] + [Row("WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.Bluray)] + [Row("Two.and.a.Half.Men.S08E05.720p.HDTV.X264-DIMENSION", QualityTypes.HDTV)] + [Row("Chuck.S04E05.HDTV.XviD-LOL", QualityTypes.TV)] + [Row("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", QualityTypes.DVD)] + [Row("Degrassi.S10E27.WS.DSR.XviD-2HD", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", QualityTypes.WEBDL)] + [Row("Sonny.With.a.Chance.S02E15.720p", QualityTypes.HDTV)] + [Row("Sonny.With.a.Chance.S02E15.mkv", QualityTypes.HDTV)] + [Row("Sonny.With.a.Chance.S02E15.avi", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15.xvid", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15.divx", QualityTypes.TV)] + [Row("Sonny.With.a.Chance.S02E15", QualityTypes.Unknown)] + + public void quality_parse(string path, object quality) + { + var result = Parser.ParseQuality(path); + Assert.AreEqual(quality, result); + } + + } + + +} diff --git a/NzbDrone.Core.Test/MockLib.cs b/NzbDrone.Core.Test/MockLib.cs index befc76cf1..1a23a270c 100644 --- a/NzbDrone.Core.Test/MockLib.cs +++ b/NzbDrone.Core.Test/MockLib.cs @@ -1,9 +1,10 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.Linq; using System.Text; - +using FizzWare.NBuilder; using Moq; using NLog; using NzbDrone.Core.Providers; @@ -50,11 +51,28 @@ namespace NzbDrone.Core.Test } } - public static IDiskProvider GetStandardDisk() + public static IDiskProvider GetStandardDisk(int seasons, int episodes) { var mock = new Mock<IDiskProvider>(); mock.Setup(c => c.GetDirectories(It.IsAny<String>())).Returns(StandardSeries); mock.Setup(c => c.Exists(It.Is<String>(d => StandardSeries.Contains(d)))).Returns(true); + + + foreach (var series in StandardSeries) + { + var file = new List<String>(); + for (int s = 0; s < seasons; s++) + { + for (int e = 0; e < episodes; e++) + { + file.Add(String.Format("{0}\\Seasons {1}\\myepname.S{1:00}E{2:00}.avi", series, s, e)); + } + } + + string series1 = series; + mock.Setup(c => c.GetFiles(series1, "*.avi", SearchOption.AllDirectories)).Returns(file.ToArray()); + } + return mock.Object; } } diff --git a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 0ea79321a..f360342de 100644 --- a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -31,16 +31,20 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="Accessibility"> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Castle.Core, Version=2.5.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\NzbDrone.Core\Libraries\Castle.Core.dll</HintPath> + </Reference> <Reference Include="FizzWare.NBuilder, Version=2.1.9.0, Culture=neutral, PublicKeyToken=5651b03e12e42c12, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>Libs\FizzWare.NBuilder.dll</HintPath> </Reference> <Reference Include="Gallio, Version=3.2.0.0, Culture=neutral, PublicKeyToken=eb9cfa67ee6ab36e, processorArchitecture=MSIL" /> <Reference Include="MbUnit, Version=3.2.0.0, Culture=neutral, PublicKeyToken=eb9cfa67ee6ab36e, processorArchitecture=MSIL" /> - <Reference Include="Moq, Version=4.0.10827.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>Moq\Moq.dll</HintPath> - </Reference> + <Reference Include="Moq, Version=4.0.10827.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL" /> <Reference Include="Ninject, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\NzbDrone.Core\Libraries\Ninject.dll</HintPath> @@ -62,6 +66,7 @@ </Reference> </ItemGroup> <ItemGroup> + <Compile Include="MediaFileProviderTests.cs" /> <Compile Include="DbConfigControllerTest.cs" /> <Compile Include="EpisodeProviderTest.cs" /> <Compile Include="Fixtures.cs" /> @@ -84,8 +89,6 @@ </ItemGroup> <ItemGroup> <Content Include="Libs\FizzWare.NBuilder.dll" /> - <Content Include="Libs\Moq.dll" /> - <Content Include="Libs\Moq.xml" /> <Content Include="Files\Queue.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> @@ -95,6 +98,9 @@ <Content Include="Files\QueueError.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="Libs\Moq.dll" /> + <Content Include="Libs\Moq.pdb" /> + <Content Include="Libs\Moq.xml" /> <Content Include="Libs\System.Data.SQLite.DLL"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> diff --git a/NzbDrone.Core.Test/QualityProfileTest.cs b/NzbDrone.Core.Test/QualityProfileTest.cs index 04ec44b91..8796bbc02 100644 --- a/NzbDrone.Core.Test/QualityProfileTest.cs +++ b/NzbDrone.Core.Test/QualityProfileTest.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.IO; using MbUnit.Framework; -using NzbDrone.Core.Entities.Quality; +using NzbDrone.Core.Repository.Quality; namespace NzbDrone.Core.Test { @@ -23,7 +23,7 @@ namespace NzbDrone.Core.Test var repo = MockLib.GetEmptyRepository(); var testProfile = new QualityProfile { - Cutoff = QualityTypes.SDTV, + Cutoff = QualityTypes.TV, Allowed = new List<QualityTypes>() { QualityTypes.HDTV, QualityTypes.DVD }, }; diff --git a/NzbDrone.Core.Test/RepoTest.cs b/NzbDrone.Core.Test/RepoTest.cs index 26b937592..bf0fa2ce1 100644 --- a/NzbDrone.Core.Test/RepoTest.cs +++ b/NzbDrone.Core.Test/RepoTest.cs @@ -6,8 +6,8 @@ using FizzWare.NBuilder; using Gallio.Framework; using MbUnit.Framework; using MbUnit.Framework.ContractVerifiers; -using NzbDrone.Core.Entities; -using NzbDrone.Core.Entities.Episode; +using NzbDrone.Core.Model; +using NzbDrone.Core.Repository; namespace NzbDrone.Core.Test { @@ -20,7 +20,7 @@ namespace NzbDrone.Core.Test { //Arrange var fakeSeries = Builder<Series>.CreateNew().With(s => s.SeriesId = 69).Build(); - var fakeEpisode = Builder<EpisodeInfo>.CreateNew().With(c => c.SeriesId = 69).Build(); + var fakeEpisode = Builder<Episode>.CreateNew().With(c => c.SeriesId = 69).Build(); //Act var repo = MockLib.GetEmptyRepository(); @@ -55,5 +55,12 @@ namespace NzbDrone.Core.Test Assert.IsNotEmpty(allSeries); Assert.AreEqual(tvdbId, allSeries.First().SeriesId); } + + [Test] + public void enteties_toString() + { + Console.WriteLine(new Episode().ToString()); + Console.WriteLine(new EpisodeModel().ToString()); + } } } diff --git a/NzbDrone.Core.Test/SeriesProviderTest.cs b/NzbDrone.Core.Test/SeriesProviderTest.cs index 8ef28b900..6fe849e35 100644 --- a/NzbDrone.Core.Test/SeriesProviderTest.cs +++ b/NzbDrone.Core.Test/SeriesProviderTest.cs @@ -10,8 +10,8 @@ using MbUnit.Framework.ContractVerifiers; using Moq; using Ninject; using Ninject.Moq; -using NzbDrone.Core.Entities; using NzbDrone.Core.Providers; +using NzbDrone.Core.Repository; using SubSonic.Repository; using TvdbLib.Data; using System.Linq; @@ -59,10 +59,11 @@ namespace NzbDrone.Core.Test [Row(new object[] { "Van.Duin.Op.Zn.Best.S02E05.DUTCH.WS.PDTV.XViD-DiFFERENT", "Van Duin Op Zn Best" })] [Row(new object[] { "Dollhouse.S02E06.The.Left.Hand.720p.BluRay.x264-SiNNERS", "Dollhouse" })] [Row(new object[] { "Heroes.S02.COMPLETE.German.PROPER.DVDRip.XviD-Prim3time", "Heroes" })] + [Ignore("should be updated to validate agains a remote episode instance rather than just the title string")] public void Test_Parse_Success(string postTitle, string title) { - var result = SeriesProvider.ParseTitle(postTitle); - Assert.AreEqual(title, result, postTitle); + var result = Parser.ParseEpisodeInfo(postTitle); + //Assert.AreEqual(title, result, postTitle); } [Test] @@ -73,7 +74,8 @@ namespace NzbDrone.Core.Test kernel.Bind<ISeriesProvider>().To<SeriesProvider>(); - kernel.Bind<IDiskProvider>().ToConstant(MockLib.GetStandardDisk()); + kernel.Bind<IDiskProvider>().ToConstant(MockLib.GetStandardDisk(0, 0)); + kernel.Bind<IConfigProvider>().ToConstant(MockLib.StandardConfig); var seriesController = kernel.Get<ISeriesProvider>(); @@ -84,6 +86,6 @@ namespace NzbDrone.Core.Test Assert.AreElementsEqualIgnoringOrder(MockLib.StandardSeries, unmappedFolder); } - + } } diff --git a/NzbDrone.Core/CentralDispatch.cs b/NzbDrone.Core/CentralDispatch.cs index e928bd1f5..0464d7a5a 100644 --- a/NzbDrone.Core/CentralDispatch.cs +++ b/NzbDrone.Core/CentralDispatch.cs @@ -5,10 +5,9 @@ using System.Web; using Ninject; using NLog.Config; using NLog.Targets; -using NzbDrone.Core.Entities; -using NzbDrone.Core.Entities.Episode; using NzbDrone.Core.Providers; using NzbDrone.Core.Providers.Fakes; +using NzbDrone.Core.Repository; using SubSonic.DataProviders; using SubSonic.Repository; using NLog; @@ -76,7 +75,7 @@ namespace NzbDrone.Core private static void ForceMigration(IRepository repository) { repository.GetPaged<Series>(0, 1); - repository.GetPaged<EpisodeInfo>(0, 1); + repository.GetPaged<Episode>(0, 1); } diff --git a/NzbDrone.Core/Entities/Episode/BasicEpisode.cs b/NzbDrone.Core/Entities/Episode/BasicEpisode.cs deleted file mode 100644 index 0b093c0d0..000000000 --- a/NzbDrone.Core/Entities/Episode/BasicEpisode.cs +++ /dev/null @@ -1,14 +0,0 @@ -using SubSonic.SqlGeneration.Schema; - -namespace NzbDrone.Core.Entities.Episode -{ - public class BasicEpisode - { - public virtual int SeriesId { get; set; } - public int SeasonNumber { get; set; } - public int EpisodeNumber { get; set; } - - [SubSonicToOneRelation(ThisClassContainsJoinKey = true)] - public virtual Series Series { get; private set; } - } -} \ No newline at end of file diff --git a/NzbDrone.Core/Entities/Episode/RemoteEpisode.cs b/NzbDrone.Core/Entities/Episode/RemoteEpisode.cs deleted file mode 100644 index 6e40440a6..000000000 --- a/NzbDrone.Core/Entities/Episode/RemoteEpisode.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.ServiceModel.Syndication; -using NzbDrone.Core.Entities.Quality; - -namespace NzbDrone.Core.Entities.Episode -{ - public class RemoteEpisode : BasicEpisode - { - public QualityTypes Quality { get; set; } - public SyndicationItem Feed { get; set; } - public bool Proper { get; set; } - } -} diff --git a/NzbDrone.Core/Entities/Notification/NotificationStatus.cs b/NzbDrone.Core/Entities/Notification/NotificationStatus.cs deleted file mode 100644 index d9e791143..000000000 --- a/NzbDrone.Core/Entities/Notification/NotificationStatus.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace NzbDrone.Core.Entities.Notification -{ - public enum NotificationStatus - { - InProgress = 0, - Completed = 1, - Failed = 2 - } -} \ No newline at end of file diff --git a/NzbDrone.Core/Entities/Notification/NotificationType.cs b/NzbDrone.Core/Entities/Notification/NotificationType.cs deleted file mode 100644 index 845b55691..000000000 --- a/NzbDrone.Core/Entities/Notification/NotificationType.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace NzbDrone.Core.Entities.Notification -{ - public enum NotificationType - { - Info = 0, - Warrning = 1, - Error = 2 - } -} \ No newline at end of file diff --git a/NzbDrone.Core/Libraries/Castle.Core.dll b/NzbDrone.Core/Libraries/Castle.Core.dll new file mode 100644 index 000000000..31dc49548 Binary files /dev/null and b/NzbDrone.Core/Libraries/Castle.Core.dll differ diff --git a/NzbDrone.Core/Libraries/Castle.Core.pdb b/NzbDrone.Core/Libraries/Castle.Core.pdb new file mode 100644 index 000000000..1f8f1d471 Binary files /dev/null and b/NzbDrone.Core/Libraries/Castle.Core.pdb differ diff --git a/NzbDrone.Core/Libraries/Castle.Core.xml b/NzbDrone.Core/Libraries/Castle.Core.xml new file mode 100644 index 000000000..d3d950979 --- /dev/null +++ b/NzbDrone.Core/Libraries/Castle.Core.xml @@ -0,0 +1,4937 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>Castle.Core</name> + </assembly> + <members> + <member name="T:Castle.Components.DictionaryAdapter.DictionaryBehaviorAttribute"> + <summary> + Assignes a specific dictionary key. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryBehavior"> + <summary> + Defines the contract for customizing dictionary access. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.IDictionaryBehavior.ExecutionOrder"> + <summary> + Determines relative order to apply related behaviors. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.DictionaryBehaviorAttribute.ExecutionOrder"> + <summary> + Determines relative order to apply related behaviors. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryPropertySetter"> + <summary> + Defines the contract for updating dictionary values. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryPropertySetter.SetPropertyValue(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.String,System.Object@,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Sets the stored dictionary value. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="key">The key.</param> + <param name="value">The stored value.</param> + <param name="property">The property.</param> + <returns>true if the property should be stored.</returns> + </member> + <member name="T:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter"> + <summary> + Abstract adapter for the <see cref="T:System.Collections.IDictionary"/> support + needed by the <see cref="T:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory"/> + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Add(System.Object,System.Object)"> + <summary> + Adds an element with the provided key and value to the <see cref="T:System.Collections.IDictionary"></see> object. + </summary> + <param name="key">The <see cref="T:System.Object"></see> to use as the key of the element to add.</param> + <param name="value">The <see cref="T:System.Object"></see> to use as the value of the element to add.</param> + <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:System.Collections.IDictionary"></see> object. </exception> + <exception cref="T:System.ArgumentNullException">key is null. </exception> + <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.IDictionary"></see> is read-only.-or- The <see cref="T:System.Collections.IDictionary"></see> has a fixed size. </exception> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Clear"> + <summary> + Removes all elements from the <see cref="T:System.Collections.IDictionary"></see> object. + </summary> + <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.IDictionary"></see> object is read-only. </exception> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Contains(System.Object)"> + <summary> + Determines whether the <see cref="T:System.Collections.IDictionary"></see> object contains an element with the specified key. + </summary> + <param name="key">The key to locate in the <see cref="T:System.Collections.IDictionary"></see> object.</param> + <returns> + true if the <see cref="T:System.Collections.IDictionary"></see> contains an element with the key; otherwise, false. + </returns> + <exception cref="T:System.ArgumentNullException">key is null. </exception> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.GetEnumerator"> + <summary> + Returns an <see cref="T:System.Collections.IDictionaryEnumerator"></see> object for the <see cref="T:System.Collections.IDictionary"></see> object. + </summary> + <returns> + An <see cref="T:System.Collections.IDictionaryEnumerator"></see> object for the <see cref="T:System.Collections.IDictionary"></see> object. + </returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Remove(System.Object)"> + <summary> + Removes the element with the specified key from the <see cref="T:System.Collections.IDictionary"></see> object. + </summary> + <param name="key">The key of the element to remove.</param> + <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.IDictionary"></see> object is read-only.-or- The <see cref="T:System.Collections.IDictionary"></see> has a fixed size. </exception> + <exception cref="T:System.ArgumentNullException">key is null. </exception> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.CopyTo(System.Array,System.Int32)"> + <summary> + Copies the elements of the <see cref="T:System.Collections.ICollection"></see> to an <see cref="T:System.Array"></see>, starting at a particular <see cref="T:System.Array"></see> index. + </summary> + <param name="array">The one-dimensional <see cref="T:System.Array"></see> that is the destination of the elements copied from <see cref="T:System.Collections.ICollection"></see>. The <see cref="T:System.Array"></see> must have zero-based indexing.</param> + <param name="index">The zero-based index in array at which copying begins.</param> + <exception cref="T:System.ArgumentNullException">array is null. </exception> + <exception cref="T:System.ArgumentException">The type of the source <see cref="T:System.Collections.ICollection"></see> cannot be cast automatically to the type of the destination array. </exception> + <exception cref="T:System.ArgumentOutOfRangeException">index is less than zero. </exception> + <exception cref="T:System.ArgumentException">array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source <see cref="T:System.Collections.ICollection"></see> is greater than the available space from index to the end of the destination array. </exception> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.System#Collections#IEnumerable#GetEnumerator"> + <summary> + Returns an enumerator that iterates through a collection. + </summary> + <returns> + An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. + </returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.IsFixedSize"> + <summary> + Gets a value indicating whether the <see cref="T:System.Collections.IDictionary"></see> object has a fixed size. + </summary> + <value></value> + <returns>true if the <see cref="T:System.Collections.IDictionary"></see> object has a fixed size; otherwise, false.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.IsReadOnly"> + <summary> + Gets a value indicating whether the <see cref="T:System.Collections.IDictionary"></see> object is read-only. + </summary> + <value></value> + <returns>true if the <see cref="T:System.Collections.IDictionary"></see> object is read-only; otherwise, false.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Keys"> + <summary> + Gets an <see cref="T:System.Collections.ICollection"></see> object containing the keys of the <see cref="T:System.Collections.IDictionary"></see> object. + </summary> + <value></value> + <returns>An <see cref="T:System.Collections.ICollection"></see> object containing the keys of the <see cref="T:System.Collections.IDictionary"></see> object.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Values"> + <summary> + Gets an <see cref="T:System.Collections.ICollection"></see> object containing the values in the <see cref="T:System.Collections.IDictionary"></see> object. + </summary> + <value></value> + <returns>An <see cref="T:System.Collections.ICollection"></see> object containing the values in the <see cref="T:System.Collections.IDictionary"></see> object.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Item(System.Object)"> + <summary> + Gets or sets the <see cref="T:System.Object"/> with the specified key. + </summary> + <value></value> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.Count"> + <summary> + Gets the number of elements contained in the <see cref="T:System.Collections.ICollection"></see>. + </summary> + <value></value> + <returns>The number of elements contained in the <see cref="T:System.Collections.ICollection"></see>.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.IsSynchronized"> + <summary> + Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"></see> is synchronized (thread safe). + </summary> + <value></value> + <returns>true if access to the <see cref="T:System.Collections.ICollection"></see> is synchronized (thread safe); otherwise, false.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapter.SyncRoot"> + <summary> + Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"></see>. + </summary> + <value></value> + <returns>An object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"></see>.</returns> + </member> + <member name="T:Castle.Components.DictionaryAdapter.AbstractDictionaryAdapterVisitor"> + <summary> + Abstract implementation of <see cref="T:Castle.Components.DictionaryAdapter.IDictionaryAdapterVisitor"/>. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryAdapterVisitor"> + <summary> + Conract for traversing a <see cref="T:Castle.Components.DictionaryAdapter.IDictionaryAdapter"/>. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.ComponentAttribute"> + <summary> + Identifies a property should be represented as a nested component. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryKeyBuilder"> + <summary> + Defines the contract for building typed dictionary keys. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryKeyBuilder.GetKey(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.String,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Builds the specified key. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="key">The current key.</param> + <param name="property">The property.</param> + <returns>The updated key</returns> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryPropertyGetter"> + <summary> + Defines the contract for retrieving dictionary values. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryPropertyGetter.GetPropertyValue(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.String,System.Object,Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Boolean)"> + <summary> + Gets the effective dictionary value. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="key">The key.</param> + <param name="storedValue">The stored value.</param> + <param name="property">The property.</param> + <param name="ifExists">true if return only existing.</param> + <returns>The effective property value.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.ComponentAttribute.NoPrefix"> + <summary> + Applies no prefix. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.ComponentAttribute.Prefix"> + <summary> + Gets or sets the prefix. + </summary> + <value>The prefix.</value> + </member> + <member name="T:Castle.Components.DictionaryAdapter.DictionaryAdapterAttribute"> + <summary> + Identifies the dictionary adapter types. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.FetchAttribute"> + <summary> + Identifies an interface or property to be pre-feteched. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.FetchAttribute.#ctor"> + <summary> + Instructs fetching to occur. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.FetchAttribute.#ctor(System.Boolean)"> + <summary> + Instructs fetching according to <paramref name="fetch"/> + </summary> + <param name="fetch"></param> + </member> + <member name="P:Castle.Components.DictionaryAdapter.FetchAttribute.Fetch"> + <summary> + Gets whether or not fetching should occur. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.GroupAttribute"> + <summary> + Assigns a property to a group. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.GroupAttribute.#ctor(System.Object)"> + <summary> + Constructs a group assignment. + </summary> + <param name="group">The group name.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.GroupAttribute.#ctor(System.Object[])"> + <summary> + Constructs a group assignment. + </summary> + <param name="group">The group name.</param> + </member> + <member name="P:Castle.Components.DictionaryAdapter.GroupAttribute.Group"> + <summary> + Gets the group the property is assigned to. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.KeyAttribute"> + <summary> + Assigns a specific dictionary key. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.KeyAttribute.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Components.DictionaryAdapter.KeyAttribute"/> class. + </summary> + <param name="key">The key.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.KeyAttribute.#ctor(System.String[])"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Components.DictionaryAdapter.KeyAttribute"/> class. + </summary> + <param name="keys">The compound key.</param> + </member> + <member name="T:Castle.Components.DictionaryAdapter.KeyPrefixAttribute"> + <summary> + Assigns a prefix to the keyed properties of an interface. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.KeyPrefixAttribute.#ctor"> + <summary> + Initializes a default instance of the <see cref="T:Castle.Components.DictionaryAdapter.KeyPrefixAttribute"/> class. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.KeyPrefixAttribute.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Components.DictionaryAdapter.KeyPrefixAttribute"/> class. + </summary> + <param name="keyPrefix">The prefix for the keyed properties of the interface.</param> + </member> + <member name="P:Castle.Components.DictionaryAdapter.KeyPrefixAttribute.KeyPrefix"> + <summary> + Gets the prefix key added to the properties of the interface. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.KeySubstitutionAttribute"> + <summary> + Substitutes part of key with another string. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.KeySubstitutionAttribute.#ctor(System.String,System.String)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Components.DictionaryAdapter.KeySubstitutionAttribute"/> class. + </summary> + <param name="oldValue">The old value.</param> + <param name="newValue">The new value.</param> + </member> + <member name="T:Castle.Components.DictionaryAdapter.MultiLevelEditAttribute"> + <summary> + Requests support for multi-level editing. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryInitializer"> + <summary> + Contract for dictionary initialization. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryInitializer.Initialize(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.Object[])"> + <summary> + Performs any initialization of the <see cref="T:Castle.Components.DictionaryAdapter.IDictionaryAdapter"/> + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="behaviors">The dictionary behaviors.</param> + </member> + <member name="T:Castle.Components.DictionaryAdapter.NewGuidAttribute"> + <summary> + Generates a new GUID on demand. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.OnDemandAttribute"> + <summary> + Support for on-demand value resolution. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.PropagateNotificationsAttribute"> + <summary> + Suppress property change notifications. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.StringFormatAttribute"> + <summary> + Provides simple string formatting from existing properties. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.StringFormatAttribute.Format"> + <summary> + Gets the string format. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.StringFormatAttribute.Properties"> + <summary> + Gets the format properties. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.StringListAttribute"> + <summary> + Identifies a property should be represented as a delimited string value. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.StringListAttribute.Separator"> + <summary> + Gets the separator. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.StringValuesAttribute"> + <summary> + Converts all properties to strings. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.StringValuesAttribute.Format"> + <summary> + Gets or sets the format. + </summary> + <value>The format.</value> + </member> + <member name="T:Castle.Components.DictionaryAdapter.SuppressNotificationsAttribute"> + <summary> + Suppress property change notifications. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IPropertyDescriptorInitializer"> + <summary> + Contract for property descriptor initialization. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IPropertyDescriptorInitializer.Initialize(Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Object[])"> + <summary> + Performs any initialization of the <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="propertyDescriptor">The property descriptor.</param> + <param name="behaviors">The property behaviors.</param> + </member> + <member name="T:Castle.Components.DictionaryAdapter.TypeKeyPrefixAttribute"> + <summary> + Assigns a prefix to the keyed properties using the interface name. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.DefaultPropertyGetter"> + <summary> + Manages conversion between property values. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DefaultPropertyGetter.#ctor(System.ComponentModel.TypeConverter)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Components.DictionaryAdapter.DefaultPropertyGetter"/> class. + </summary> + <param name="converter">The converter.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DefaultPropertyGetter.GetPropertyValue(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.String,System.Object,Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Boolean)"> + <summary> + Gets the effective dictionary value. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="key">The key.</param> + <param name="storedValue">The stored value.</param> + <param name="property">The property.</param> + <param name="ifExists">true if return only existing.</param> + <returns>The effective property value.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.DefaultPropertyGetter.ExecutionOrder"> + <summary> + + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryCreate"> + <summary> + Contract for creating additional Dictionary adapters. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryAdapter"> + <summary> + Contract for manipulating the Dictionary adapter. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryEdit"> + <summary> + Contract for editing the Dictionary adapter. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryNotify"> + <summary> + Contract for managing Dictionary adapter notifications. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryValidate"> + <summary> + Contract for validating Dictionary adapter. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory"> + <summary> + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + </summary> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory"> + <summary> + Defines the contract for building typed dictionary adapters. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapter``1(System.Collections.IDictionary)"> + <summary> + Gets a typed adapter bound to the <see cref="T:System.Collections.IDictionary"/>. + </summary> + <typeparam name="T">The typed interface.</typeparam> + <param name="dictionary">The underlying source of properties.</param> + <returns>An implementation of the typed interface bound to the dictionary.</returns> + <remarks> + The type represented by T must be an interface with properties. + </remarks> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapter(System.Type,System.Collections.IDictionary)"> + <summary> + Gets a typed adapter bound to the <see cref="T:System.Collections.IDictionary"/>. + </summary> + <param name="type">The typed interface.</param> + <param name="dictionary">The underlying source of properties.</param> + <returns>An implementation of the typed interface bound to the dictionary.</returns> + <remarks> + The type represented by T must be an interface with properties. + </remarks> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapter(System.Type,System.Collections.IDictionary,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Gets a typed adapter bound to the <see cref="T:System.Collections.IDictionary"/>. + </summary> + <param name="type">The typed interface.</param> + <param name="dictionary">The underlying source of properties.</param> + <param name="descriptor">The property descriptor.</param> + <returns>An implementation of the typed interface bound to the dictionary.</returns> + <remarks> + The type represented by T must be an interface with properties. + </remarks> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapter``1(System.Collections.Specialized.NameValueCollection)"> + <summary> + Gets a typed adapter bound to the <see cref="T:System.Collections.Specialized.NameValueCollection"/>. + </summary> + <typeparam name="T">The typed interface.</typeparam> + <param name="nameValues">The underlying source of properties.</param> + <returns>An implementation of the typed interface bound to the namedValues.</returns> + <remarks> + The type represented by T must be an interface with properties. + </remarks> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapter(System.Type,System.Collections.Specialized.NameValueCollection)"> + <summary> + Gets a typed adapter bound to the <see cref="T:System.Collections.Specialized.NameValueCollection"/>. + </summary> + <param name="type">The typed interface.</param> + <param name="nameValues">The underlying source of properties.</param> + <returns>An implementation of the typed interface bound to the namedValues.</returns> + <remarks> + The type represented by T must be an interface with properties. + </remarks> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapter``1(System.Xml.XPath.IXPathNavigable)"> + <summary> + Gets a typed adapter bound to the <see cref="T:System.Xml.XPath.IXPathNavigable"/>. + </summary> + <typeparam name="T">The typed interface.</typeparam> + <param name="xpathNavigable">The underlying source of properties.</param> + <returns>An implementation of the typed interface bound to the xpath navigable.</returns> + <remarks> + The type represented by T must be an interface with properties. + </remarks> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapter(System.Type,System.Xml.XPath.IXPathNavigable)"> + <summary> + Gets a typed adapter bound to the <see cref="T:System.Xml.XPath.IXPathNavigable"/>. + </summary> + <param name="type">The typed interface.</param> + <param name="xpathNavigable">The underlying source of properties.</param> + <returns>An implementation of the typed interface bound to the xpath navigable.</returns> + <remarks> + The type represented by T must be an interface with properties. + </remarks> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapterMeta(System.Type)"> + <summary> + Gets the <see cref="T:Castle.Components.DictionaryAdapter.DictionaryAdapterMeta"/> associated with the type. + </summary> + <param name="type">The typed interface.</param> + <returns>The adapter meta-data.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory.GetAdapterMeta(System.Type,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Gets the <see cref="T:Castle.Components.DictionaryAdapter.DictionaryAdapterMeta"/> associated with the type. + </summary> + <param name="type">The typed interface.</param> + <param name="descriptor">The property descriptor.</param> + <returns>The adapter meta-data.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter``1(System.Collections.IDictionary)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter(System.Type,System.Collections.IDictionary)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter(System.Type,System.Collections.IDictionary,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter``2(System.Collections.Generic.IDictionary{System.String,``1})"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter``1(System.Type,System.Collections.Generic.IDictionary{System.String,``0})"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter``1(System.Collections.Specialized.NameValueCollection)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter(System.Type,System.Collections.Specialized.NameValueCollection)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter``1(System.Xml.XPath.IXPathNavigable)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapter(System.Type,System.Xml.XPath.IXPathNavigable)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapterMeta(System.Type)"> + <inheritdoc /> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryAdapterFactory.GetAdapterMeta(System.Type,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <inheritdoc /> + </member> + <member name="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"> + <summary> + Describes a dictionary property. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.#ctor"> + <summary> + Initializes an empty <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> class. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.#ctor(System.Reflection.PropertyInfo,System.Object[])"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> class. + </summary> + <param name="property">The property.</param> + <param name="behaviors">The property behaviors.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.GetKey(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.String,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Gets the key. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="key">The key.</param> + <param name="descriptor">The descriptor.</param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddKeyBuilder(Castle.Components.DictionaryAdapter.IDictionaryKeyBuilder[])"> + <summary> + Adds the key builder. + </summary> + <param name="builders">The builder.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddKeyBuilders(System.Collections.Generic.IEnumerable{Castle.Components.DictionaryAdapter.IDictionaryKeyBuilder})"> + <summary> + Adds the key builders. + </summary> + <param name="builders">The builders.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopyKeyBuilders(Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Copies the key builders to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopyKeyBuilders(Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Func{Castle.Components.DictionaryAdapter.IDictionaryKeyBuilder,System.Boolean})"> + <summary> + Copies the selected key builders to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <param name="selector"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.GetPropertyValue(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.String,System.Object,Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Boolean)"> + <summary> + Gets the property value. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="key">The key.</param> + <param name="storedValue">The stored value.</param> + <param name="descriptor">The descriptor.</param> + <param name="ifExists">true if return only existing.</param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddGetter(Castle.Components.DictionaryAdapter.IDictionaryPropertyGetter[])"> + <summary> + Adds the dictionary getter. + </summary> + <param name="getters">The getter.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddGetters(System.Collections.Generic.IEnumerable{Castle.Components.DictionaryAdapter.IDictionaryPropertyGetter})"> + <summary> + Adds the dictionary getters. + </summary> + <param name="gets">The getters.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopyGetters(Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Copies the property getters to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopyGetters(Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Func{Castle.Components.DictionaryAdapter.IDictionaryPropertyGetter,System.Boolean})"> + <summary> + Copies the selected property getters to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <param name="selector"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.SetPropertyValue(Castle.Components.DictionaryAdapter.IDictionaryAdapter,System.String,System.Object@,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Sets the property value. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="key">The key.</param> + <param name="value">The value.</param> + <param name="descriptor">The descriptor.</param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddSetter(Castle.Components.DictionaryAdapter.IDictionaryPropertySetter[])"> + <summary> + Adds the dictionary setter. + </summary> + <param name="setters">The setter.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddSetters(System.Collections.Generic.IEnumerable{Castle.Components.DictionaryAdapter.IDictionaryPropertySetter})"> + <summary> + Adds the dictionary setters. + </summary> + <param name="sets">The setters.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopySetters(Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Copies the property setters to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopySetters(Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Func{Castle.Components.DictionaryAdapter.IDictionaryPropertySetter,System.Boolean})"> + <summary> + Copies the selected property setters to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <param name="selector"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddBehavior(Castle.Components.DictionaryAdapter.IDictionaryBehavior[])"> + <summary> + Adds the behaviors. + </summary> + <param name="behaviors"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.AddBehaviors(System.Collections.Generic.IEnumerable{Castle.Components.DictionaryAdapter.IDictionaryBehavior})"> + <summary> + Adds the behaviors. + </summary> + <param name="behaviors"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopyBehaviors(Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Copies the behaviors to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.PropertyDescriptor.CopyBehaviors(Castle.Components.DictionaryAdapter.PropertyDescriptor,System.Func{Castle.Components.DictionaryAdapter.IDictionaryBehavior,System.Boolean})"> + <summary> + Copies the behaviors to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <param name="selector"></param> + <returns></returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.ExecutionOrder"> + <summary> + + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.PropertyName"> + <summary> + Gets the property name. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.PropertyType"> + <summary> + Gets the property type. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.Property"> + <summary> + Gets the property. + </summary> + <value>The property.</value> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.IsDynamicProperty"> + <summary> + Returns true if the property is dynamic. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.State"> + <summary> + Gets additional state. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.Fetch"> + <summary> + Determines if property should be fetched. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.SuppressNotifications"> + <summary> + Determines if notifications should occur. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.Behaviors"> + <summary> + Gets the property behaviors. + </summary> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.TypeConverter"> + <summary> + Gets the type converter. + </summary> + <value>The type converter.</value> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.KeyBuilders"> + <summary> + Gets the key builders. + </summary> + <value>The key builders.</value> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.Setters"> + <summary> + Gets the setter. + </summary> + <value>The setter.</value> + </member> + <member name="P:Castle.Components.DictionaryAdapter.PropertyDescriptor.Getters"> + <summary> + Gets the getter. + </summary> + <value>The getter.</value> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.AddInitializer(Castle.Components.DictionaryAdapter.IDictionaryInitializer[])"> + <summary> + Adds the dictionary initializers. + </summary> + <param name="inits">The initializers.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.AddInitializers(System.Collections.Generic.IEnumerable{Castle.Components.DictionaryAdapter.IDictionaryInitializer})"> + <summary> + Adds the dictionary initializers. + </summary> + <param name="inits">The initializers.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.CopyInitializers(Castle.Components.DictionaryAdapter.DictionaryDescriptor)"> + <summary> + Copies the initializers to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.CopyInitializers(Castle.Components.DictionaryAdapter.DictionaryDescriptor,System.Func{Castle.Components.DictionaryAdapter.IDictionaryInitializer,System.Boolean})"> + <summary> + Copies the filtered initializers to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <param name="selector"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.AddMetaInitializer(Castle.Components.DictionaryAdapter.IDictionaryMetaInitializer[])"> + <summary> + Adds the dictionary meta-data initializers. + </summary> + <param name="inits">The meta-data initializers.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.AddMetaInitializers(System.Collections.Generic.IEnumerable{Castle.Components.DictionaryAdapter.IDictionaryMetaInitializer})"> + <summary> + Adds the dictionary meta-data initializers. + </summary> + <param name="inits">The meta-data initializers.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.CopyMetaInitializers(Castle.Components.DictionaryAdapter.DictionaryDescriptor)"> + <summary> + Copies the meta-initializers to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <returns></returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.DictionaryDescriptor.CopyMetaInitializers(Castle.Components.DictionaryAdapter.DictionaryDescriptor,System.Func{Castle.Components.DictionaryAdapter.IDictionaryMetaInitializer,System.Boolean})"> + <summary> + Copies the filtered meta-initializers to the other <see cref="T:Castle.Components.DictionaryAdapter.PropertyDescriptor"/> + </summary> + <param name="other"></param> + <param name="selector"></param> + <returns></returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.DictionaryDescriptor.Initializers"> + <summary> + Gets the initializers. + </summary> + <value>The initializers.</value> + </member> + <member name="P:Castle.Components.DictionaryAdapter.DictionaryDescriptor.MetaInitializers"> + <summary> + Gets the meta-data initializers. + </summary> + <value>The meta-data initializers.</value> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryMetaInitializer"> + <summary> + Contract for dictionary meta-data initialization. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryMetaInitializer.Initialize(Castle.Components.DictionaryAdapter.IDictionaryAdapterFactory,Castle.Components.DictionaryAdapter.DictionaryAdapterMeta)"> + <summary> + Performs any initialization of the dictionary adapter meta-data. + </summary> + <param name="factory">The dictionary adapter factory.</param> + <param name="dictionaryMeta">The dictionary adapter meta.</param> + + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDictionaryValidator"> + <summary> + Contract for dictionary validation. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryValidator.IsValid(Castle.Components.DictionaryAdapter.IDictionaryAdapter)"> + <summary> + Determines if <see cref="T:Castle.Components.DictionaryAdapter.IDictionaryAdapter"/> is valid. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <returns>true if valid.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryValidator.Validate(Castle.Components.DictionaryAdapter.IDictionaryAdapter)"> + <summary> + Validates the <see cref="T:Castle.Components.DictionaryAdapter.IDictionaryAdapter"/>. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <returns>The error summary information.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryValidator.Validate(Castle.Components.DictionaryAdapter.IDictionaryAdapter,Castle.Components.DictionaryAdapter.PropertyDescriptor)"> + <summary> + Validates the <see cref="T:Castle.Components.DictionaryAdapter.IDictionaryAdapter"/> for a property. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + <param name="property">The property to validate.</param> + <returns>The property summary information.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.IDictionaryValidator.Invalidate(Castle.Components.DictionaryAdapter.IDictionaryAdapter)"> + <summary> + Invalidates any results cached by the validator. + </summary> + <param name="dictionaryAdapter">The dictionary adapter.</param> + </member> + <member name="T:Castle.Components.DictionaryAdapter.NameValueCollectionAdapter"> + <summary> + + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.NameValueCollectionAdapter.#ctor(System.Collections.Specialized.NameValueCollection)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Components.DictionaryAdapter.NameValueCollectionAdapter"/> class. + </summary> + <param name="nameValues">The name values.</param> + </member> + <member name="M:Castle.Components.DictionaryAdapter.NameValueCollectionAdapter.Contains(System.Object)"> + <summary> + Determines whether the <see cref="T:System.Collections.IDictionary"></see> object contains an element with the specified key. + </summary> + <param name="key">The key to locate in the <see cref="T:System.Collections.IDictionary"></see> object.</param> + <returns> + true if the <see cref="T:System.Collections.IDictionary"></see> contains an element with the key; otherwise, false. + </returns> + <exception cref="T:System.ArgumentNullException">key is null. </exception> + </member> + <member name="M:Castle.Components.DictionaryAdapter.NameValueCollectionAdapter.Adapt(System.Collections.Specialized.NameValueCollection)"> + <summary> + Adapts the specified name values. + </summary> + <param name="nameValues">The name values.</param> + <returns></returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.NameValueCollectionAdapter.IsReadOnly"> + <summary> + Gets a value indicating whether the <see cref="T:System.Collections.IDictionary"></see> object is read-only. + </summary> + <value></value> + <returns>true if the <see cref="T:System.Collections.IDictionary"></see> object is read-only; otherwise, false.</returns> + </member> + <member name="P:Castle.Components.DictionaryAdapter.NameValueCollectionAdapter.Item(System.Object)"> + <summary> + Gets or sets the <see cref="T:System.Object"/> with the specified key. + </summary> + <value></value> + </member> + <member name="T:Castle.Components.DictionaryAdapter.AttributesUtil"> + <summary> + Helper class for retrieving attributes. + </summary> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AttributesUtil.GetTypeAttribute``1(System.Type)"> + <summary> + Gets the type attribute. + </summary> + <param name="type">The type.</param> + <returns>The type attribute.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AttributesUtil.GetAttribute``1(System.Reflection.MemberInfo)"> + <summary> + Gets the attribute. + </summary> + <param name="member">The member.</param> + <returns>The member attribute.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AttributesUtil.GetTypeAttributes``1(System.Type)"> + <summary> + Gets the type attributes. + </summary> + <param name="type">The type.</param> + <returns>The type attributes.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AttributesUtil.GetAttributes``1(System.Reflection.MemberInfo)"> + <summary> + Gets the attributes. + </summary> + <param name="member">The member.</param> + <returns>The member attributes.</returns> + </member> + <member name="M:Castle.Components.DictionaryAdapter.AttributesUtil.GetTypeConverter(System.Reflection.MemberInfo)"> + <summary> + Gets the type converter. + </summary> + <param name="member">The member.</param> + <returns></returns> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDynamicValue`1"> + <summary> + Contract for typed dynamic value resolution. + </summary> + <typeparam name="T"></typeparam> + </member> + <member name="T:Castle.Components.DictionaryAdapter.IDynamicValue"> + <summary> + Contract for dynamic value resolution. + </summary> + </member> + <member name="T:Castle.DynamicProxy.IInvocation"> + <summary> + Encapsulates an invocation of a proxied method. + </summary> + </member> + <member name="M:Castle.DynamicProxy.IInvocation.SetArgumentValue(System.Int32,System.Object)"> + <summary> + Overrides the value of an argument at the given <paramref name="index"/> with the + new <paramref name="value"/> provided. + </summary> + <remarks> + This method accepts an <see cref="T:System.Object"/>, however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + </remarks> + <param name="index">The index of the argument to override.</param> + <param name="value">The new value for the argument.</param> + </member> + <member name="M:Castle.DynamicProxy.IInvocation.GetArgumentValue(System.Int32)"> + <summary> + Gets the value of the argument at the specified <paramref name="index"/>. + </summary> + <param name="index">The index.</param> + <returns>The value of the argument at the specified <paramref name="index"/>.</returns> + </member> + <member name="M:Castle.DynamicProxy.IInvocation.GetConcreteMethod"> + <summary> + Returns the concrete instantiation of the <see cref="P:Castle.DynamicProxy.IInvocation.Method"/>, with any generic + parameters bound to real types. + </summary> + <returns> + The concrete instantiation of the <see cref="P:Castle.DynamicProxy.IInvocation.Method"/>, or the <see cref="P:Castle.DynamicProxy.IInvocation.Method"/> if + not a generic method. + </returns> + <remarks>Can be slower than calling <see cref="P:Castle.DynamicProxy.IInvocation.Method"/>.</remarks> + </member> + <member name="M:Castle.DynamicProxy.IInvocation.GetConcreteMethodInvocationTarget"> + <summary> + Returns the concrete instantiation of <see cref="P:Castle.DynamicProxy.IInvocation.MethodInvocationTarget"/>, with any + generic parameters bound to real types. + </summary> + <returns>The concrete instantiation of <see cref="P:Castle.DynamicProxy.IInvocation.MethodInvocationTarget"/>, or + <see cref="P:Castle.DynamicProxy.IInvocation.MethodInvocationTarget"/> if not a generic method.</returns> + <remarks>Can be slower than calling <see cref="P:Castle.DynamicProxy.IInvocation.MethodInvocationTarget"/>.</remarks> + </member> + <member name="M:Castle.DynamicProxy.IInvocation.Proceed"> + <summary> + Proceeds the call to the next interceptor in line, and ultimately to the target method. + </summary> + <remarks> + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + <see cref="T:System.NotImplementedException"/> will be thrown. + </remarks> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.Proxy"> + <summary> + Gets the proxy object on which the intercepted method is invoked. + </summary> + <value>Proxy object on which the intercepted method is invoked.</value> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.InvocationTarget"> + <summary> + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + </summary> + <seealso cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> + <value>The invocation target.</value> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.TargetType"> + <summary> + Gets the type of the target object for the intercepted method. + </summary> + <value>The type of the target object.</value> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.Arguments"> + <summary> + Gets the arguments that the <see cref="P:Castle.DynamicProxy.IInvocation.Method"/> has been invoked with. + </summary> + <value>The arguments the method was invoked with.</value> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.GenericArguments"> + <summary> + Gets the generic arguments of the method. + </summary> + <value>The generic arguments, or null if not a generic method.</value> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.Method"> + <summary> + Gets the <see cref="T:System.Reflection.MethodInfo"/> representing the method being invoked. + </summary> + <value>The <see cref="T:System.Reflection.MethodInfo"/> representing the method being invoked.</value> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.MethodInvocationTarget"> + <summary> + For interface proxies, this will point to the <see cref="T:System.Reflection.MethodInfo"/> on the target class. + </summary> + <value>The method invocation target.</value> + </member> + <member name="P:Castle.DynamicProxy.IInvocation.ReturnValue"> + <summary> + Gets or sets the return value of the method. + </summary> + <value>The return value of the method.</value> + </member> + <member name="T:Castle.DynamicProxy.IProxyGenerationHook"> + <summary> + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + </summary> + </member> + <member name="M:Castle.DynamicProxy.IProxyGenerationHook.ShouldInterceptMethod(System.Type,System.Reflection.MethodInfo)"> + <summary> + Invoked by the generation process to determine if the specified method should be proxied. + </summary> + <param name="type">The type which declares the given method.</param> + <param name="methodInfo">The method to inspect.</param> + <returns>True if the given method should be proxied; false otherwise.</returns> + </member> + <member name="M:Castle.DynamicProxy.IProxyGenerationHook.NonProxyableMemberNotification(System.Type,System.Reflection.MemberInfo)"> + <summary> + Invoked by the generation process to notify that a member was not marked as virtual. + </summary> + <param name="type">The type which declares the non-virtual member.</param> + <param name="memberInfo">The non-virtual member.</param> + <remarks> + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.IProxyGenerationHook.MethodsInspected"> + <summary> + Invoked by the generation process to notify that the whole process has completed. + </summary> + </member> + <member name="T:Castle.DynamicProxy.Contributors.ITypeContributor"> + <summary> + Interface describing elements composing generated type + </summary> + </member> + <member name="M:Castle.DynamicProxy.Contributors.MembersCollector.IsAccessible(System.Reflection.MethodBase)"> + <summary> + Checks if the method is public or protected. + </summary> + <param name="method"></param> + <returns></returns> + </member> + <member name="M:Castle.DynamicProxy.Contributors.MembersCollector.AcceptMethod(System.Reflection.MethodInfo,System.Boolean,Castle.DynamicProxy.IProxyGenerationHook)"> + <summary> + Performs some basic screening and invokes the <see cref="T:Castle.DynamicProxy.IProxyGenerationHook"/> + to select methods. + </summary> + <param name="method"></param> + <param name="onlyVirtuals"></param> + <param name="hook"></param> + <returns></returns> + </member> + <member name="T:Castle.DynamicProxy.IAttributeDisassembler"> + <summary> + Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy. + </summary> + </member> + <member name="M:Castle.DynamicProxy.IAttributeDisassembler.Disassemble(System.Attribute)"> + <summary> + Disassembles given attribute instance back to corresponding CustomAttributeBuilder. + </summary> + <param name="attribute">An instance of attribute to disassemble</param> + <returns><see cref="T:System.Reflection.Emit.CustomAttributeBuilder"/> corresponding 1 to 1 to given attribute instance, or null reference.</returns> + <remarks> + Implementers should return <see cref="T:System.Reflection.Emit.CustomAttributeBuilder"/> that corresponds to given attribute instance 1 to 1, + that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified + we should be able to get an attribute instance identical to the one passed in <paramref name="attribute"/>. Implementer can return null + if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user + it is illegal to return null, and doing so will result in exception. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.HandleError(System.Type,System.Exception)"> + <summary> + Handles error during disassembly process + </summary> + <param name="attributeType">Type of the attribute being disassembled</param> + <param name="exception">Exception thrown during the process</param> + <returns>usually null, or (re)throws the exception</returns> + </member> + <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.InitializeConstructorArgs(System.Type,System.Attribute,System.Object[],System.Reflection.ParameterInfo[])"> + <summary> + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.ReplaceIfBetterMatch(System.Reflection.ParameterInfo,System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)"> + <summary> + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.ConvertValue(System.Object,System.Type)"> + <summary> + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + </summary> + </member> + <member name="T:Castle.DynamicProxy.CacheMappingsAttribute"> + <summary> + Applied to the assemblies saved by <see cref="T:Castle.DynamicProxy.ModuleScope"/> in order to persist the cache data included in the persisted assembly. + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.BaseProxyGenerator"> + <summary> + Base class that exposes the common functionalities + to proxy generation. + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.GenerateParameterlessConstructor(Castle.DynamicProxy.Generators.Emitters.ClassEmitter,System.Type,Castle.DynamicProxy.Generators.Emitters.SimpleAST.FieldReference)"> + <summary> + Generates a parameters constructor that initializes the proxy + state with <see cref="T:Castle.DynamicProxy.StandardInterceptor"/> just to make it non-null. + <para> + This constructor is important to allow proxies to be XML serializable + </para> + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.AddMappingNoCheck(System.Type,Castle.DynamicProxy.Contributors.ITypeContributor,System.Collections.Generic.IDictionary{System.Type,Castle.DynamicProxy.Contributors.ITypeContributor})"> + <summary> + It is safe to add mapping (no mapping for the interface exists) + </summary> + <param name="implementer"></param> + <param name="interface"></param> + <param name="mapping"></param> + </member> + <member name="M:Castle.DynamicProxy.Generators.InvocationTypeGenerator.GetBaseCtorArguments(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,System.Reflection.ConstructorInfo@)"> + <summary> + Generates the constructor for the class that extends + <see cref="T:Castle.DynamicProxy.AbstractInvocation"/> + </summary> + <param name="targetFieldType"></param> + <param name="proxyGenerationOptions"></param> + <param name="baseConstructor"></param> + </member> + <member name="T:Castle.DynamicProxy.DefaultProxyBuilder"> + <summary> + Default implementation of <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> interface producing in-memory proxy assemblies. + </summary> + </member> + <member name="T:Castle.DynamicProxy.IProxyBuilder"> + <summary> + Abstracts the implementation of proxy type construction. + </summary> + </member> + <member name="M:Castle.DynamicProxy.IProxyBuilder.CreateClassProxy(System.Type,Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates a proxy type for given <paramref name="classToProxy"/>, using <paramref name="options"/> provided. + </summary> + <param name="classToProxy">The class type to proxy.</param> + <param name="options">The proxy generation options.</param> + <returns>The generated proxy type.</returns> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> is not public. + Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/> + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception> + <seealso cref="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"/> + </member> + <member name="M:Castle.DynamicProxy.IProxyBuilder.CreateClassProxy(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates a proxy type for given <paramref name="classToProxy"/>, implementing <paramref name="additionalInterfacesToProxy"/>, using <paramref name="options"/> provided. + </summary> + <param name="classToProxy">The class type to proxy.</param> + <param name="additionalInterfacesToProxy">Additional interface types to proxy.</param> + <param name="options">The proxy generation options.</param> + <returns>The generated proxy type.</returns> + <remarks> + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See <see cref="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"/> method.) + </remarks> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is not public. + Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/> + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception> + <seealso cref="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"/> + </member> + <member name="M:Castle.DynamicProxy.IProxyBuilder.CreateClassProxyType(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates a proxy type for given <paramref name="classToProxy"/>, implementing <paramref name="additionalInterfacesToProxy"/>, using <paramref name="options"/> provided. + </summary> + <param name="classToProxy">The class type to proxy.</param> + <param name="additionalInterfacesToProxy">Additional interface types to proxy.</param> + <param name="options">The proxy generation options.</param> + <returns>The generated proxy type.</returns> + <remarks> + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See <see cref="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"/> method.) + </remarks> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is not public. + Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/> + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception> + <seealso cref="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"/> + </member> + <member name="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithTarget(System.Type,System.Type[],System.Type,Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates a proxy type that proxies calls to <paramref name="interfaceToProxy"/> members on <paramref name="targetType"/>, implementing <paramref name="additionalInterfacesToProxy"/>, using <paramref name="options"/> provided. + </summary> + <param name="interfaceToProxy">The interface type to proxy.</param> + <param name="additionalInterfacesToProxy">Additional interface types to proxy.</param> + <param name="targetType">Type implementing <paramref name="interfaceToProxy"/> on which calls to the interface members should be intercepted.</param> + <param name="options">The proxy generation options.</param> + <returns>The generated proxy type.</returns> + <remarks> + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See <see cref="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"/> method.) + </remarks> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is not public. + Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/> + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception> + <seealso cref="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator"/> + </member> + <member name="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates a proxy type for given <paramref name="interfaceToProxy"/> that delegates all calls to the provided interceptors. + </summary> + <param name="interfaceToProxy">The interface type to proxy.</param> + <param name="additionalInterfacesToProxy">Additional interface types to proxy.</param> + <param name="options">The proxy generation options.</param> + <returns>The generated proxy type.</returns> + <remarks> + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + </remarks> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is not public. + Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/> + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception> + <seealso cref="T:Castle.DynamicProxy.Generators.InterfaceProxyWithoutTargetGenerator"/> + </member> + <member name="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithTargetInterface(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates a proxy type for given <paramref name="interfaceToProxy"/> and <parmaref name="additionalInterfacesToProxy"/> that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + </summary> + <param name="interfaceToProxy">The interface type to proxy.</param> + <param name="additionalInterfacesToProxy">Additional interface types to proxy.</param> + <param name="options">The proxy generation options.</param> + <returns>The generated proxy type.</returns> + <remarks> + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. <see cref="P:Castle.DynamicProxy.IInvocation.InvocationTarget"/>), rather than a class. All <see cref="T:Castle.DynamicProxy.IInvocation"/> classes should then implement <see cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + </remarks> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is not public. + Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/> + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception> + <seealso cref="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetInterfaceGenerator"/> + </member> + <member name="P:Castle.DynamicProxy.IProxyBuilder.Logger"> + <summary> + Gets or sets the <see cref="T:Castle.Core.Logging.ILogger"/> that this <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> logs to. + </summary> + </member> + <member name="P:Castle.DynamicProxy.IProxyBuilder.ModuleScope"> + <summary> + Gets the <see cref="P:Castle.DynamicProxy.IProxyBuilder.ModuleScope"/> associated with this builder. + </summary> + <value>The module scope associated with this builder.</value> + </member> + <member name="M:Castle.DynamicProxy.DefaultProxyBuilder.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.DefaultProxyBuilder"/> class with new <see cref="T:Castle.DynamicProxy.ModuleScope"/>. + </summary> + </member> + <member name="M:Castle.DynamicProxy.DefaultProxyBuilder.#ctor(Castle.DynamicProxy.ModuleScope)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.DefaultProxyBuilder"/> class. + </summary> + <param name="scope">The module scope for generated proxy types.</param> + </member> + <member name="M:Castle.DynamicProxy.AttributeUtil.AddDisassembler``1(Castle.DynamicProxy.IAttributeDisassembler)"> + <summary> + Registers custom disassembler to handle disassembly of specified type of attributes. + </summary> + <typeparam name="TAttribute">Type of attributes to handle</typeparam> + <param name="disassembler">Disassembler converting existing instances of Attributes to CustomAttributeBuilders</param> + <remarks> + When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type, + and if none is found, it'll use the <see cref="P:Castle.DynamicProxy.AttributeUtil.FallbackDisassembler"/>. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.AttributeUtil.ShouldSkipAttributeReplication(System.Type)"> + <summary> + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.CacheKey.#ctor(System.Reflection.MemberInfo,System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.CacheKey"/> class. + </summary> + <param name="target">Target element. This is either target type or target method for invocation types.</param> + <param name="type">The type of the proxy. This is base type for invocation types.</param> + <param name="interfaces">The interfaces.</param> + <param name="options">The options.</param> + </member> + <member name="M:Castle.DynamicProxy.Generators.CacheKey.#ctor(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.CacheKey"/> class. + </summary> + <param name="target">Type of the target.</param> + <param name="interfaces">The interfaces.</param> + <param name="options">The options.</param> + </member> + <member name="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"> + <summary> + + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.Emitters.LdcOpCodesDictionary"> + <summary>s + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.Emitters.LdindOpCodesDictionary"> + <summary> + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.Emitters.OpCodeUtil.EmitLoadOpCodeForConstantValue(System.Reflection.Emit.ILGenerator,System.Object)"> + <summary> + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + </summary> + <param name="gen"></param> + <param name="value"></param> + </member> + <member name="M:Castle.DynamicProxy.Generators.Emitters.OpCodeUtil.EmitLoadOpCodeForDefaultValueOfType(System.Reflection.Emit.ILGenerator,System.Type)"> + <summary> + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.Emitters.OpCodeUtil.EmitLoadIndirectOpCodeForType(System.Reflection.Emit.ILGenerator,System.Type)"> + <summary> + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + </summary> + <param name="gen"></param> + <param name="type"></param> + </member> + <member name="M:Castle.DynamicProxy.Generators.Emitters.OpCodeUtil.EmitStoreIndirectOpCodeForType(System.Reflection.Emit.ILGenerator,System.Type)"> + <summary> + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + </summary> + <param name="gen"></param> + <param name="type"></param> + </member> + <member name="T:Castle.DynamicProxy.Generators.Emitters.PropertiesCollection"> + <summary> + Summary description for PropertiesCollection. + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.IndirectReference"> + <summary> + Wraps a reference that is passed + ByRef and provides indirect load/store support. + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.NewArrayExpression"> + <summary> + Summary description for NewArrayExpression. + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.ReferencesToObjectArrayExpression"> + <summary> + + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.Emitters.StindOpCodesDictionary"> + <summary> + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.Emitters.TypeUtil.GetAllInterfaces(System.Type[])"> + <summary> + Returns list of all unique interfaces implemented given types, including their base interfaces. + </summary> + <param name="types"></param> + <returns></returns> + </member> + <member name="M:Castle.DynamicProxy.Generators.MetaEvent.#ctor(System.String,System.Type,System.Type,Castle.DynamicProxy.Generators.MetaMethod,Castle.DynamicProxy.Generators.MetaMethod,System.Reflection.EventAttributes)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.MetaEvent"/> class. + </summary> + <param name="name">The name.</param> + <param name="declaringType">Type declaring the original event being overriten, or null.</param> + <param name="eventDelegateType"></param> + <param name="adder">The add method.</param> + <param name="remover">The remove method.</param> + <param name="attributes">The attributes.</param> + </member> + <member name="T:Castle.DynamicProxy.Generators.INamingScope"> + <summary> + Represents the scope of uniquenes of names for types and their members + </summary> + </member> + <member name="M:Castle.DynamicProxy.Generators.INamingScope.GetUniqueName(System.String)"> + <summary> + Gets a unique name based on <paramref name="suggestedName"/> + </summary> + <param name="suggestedName">Name suggested by the caller</param> + <returns>Unique name based on <paramref name="suggestedName"/>.</returns> + <remarks> + Implementers should provide name as closely resembling <paramref name="suggestedName"/> as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when <see cref="M:Castle.DynamicProxy.Generators.INamingScope.GetUniqueName(System.String)"/> is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.Generators.INamingScope.SafeSubScope"> + <summary> + Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + </summary> + <returns>New naming scope.</returns> + </member> + <member name="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator"> + <summary> + + </summary> + </member> + <member name="T:Castle.DynamicProxy.Generators.MethodFinder"> + <summary> + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + </summary> + </member> + <member name="M:Castle.DynamicProxy.InternalsHelper.IsInternalToDynamicProxy(System.Reflection.Assembly)"> + <summary> + Determines whether this assembly has internals visible to dynamic proxy. + </summary> + <param name="asm">The assembly to inspect.</param> + </member> + <member name="M:Castle.DynamicProxy.InternalsHelper.IsInternal(System.Reflection.MethodInfo)"> + <summary> + Determines whether the specified method is internal. + </summary> + <param name="method">The method.</param> + <returns> + <c>true</c> if the specified method is internal; otherwise, <c>false</c>. + </returns> + </member> + <member name="M:Castle.DynamicProxy.MixinData.#ctor(System.Collections.Generic.IEnumerable{System.Object})"> + <summary> + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducable behavior for the case that mixins are registered in different orders. + This method is here because it is required + </summary> + </member> + <member name="T:Castle.DynamicProxy.ModuleScope"> + <summary> + Summary description for ModuleScope. + </summary> + </member> + <member name="F:Castle.DynamicProxy.ModuleScope.DEFAULT_FILE_NAME"> + <summary> + The default file name used when the assembly is saved using <see cref="F:Castle.DynamicProxy.ModuleScope.DEFAULT_FILE_NAME"/>. + </summary> + </member> + <member name="F:Castle.DynamicProxy.ModuleScope.DEFAULT_ASSEMBLY_NAME"> + <summary> + The default assembly (simple) name used for the assemblies generated by a <see cref="T:Castle.DynamicProxy.ModuleScope"/> instance. + </summary> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ModuleScope"/> class; assemblies created by this instance will not be saved. + </summary> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.#ctor(System.Boolean)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance + should be saved. + </summary> + <param name="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.#ctor(System.Boolean,System.String,System.String,System.String,System.String)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + </summary> + <param name="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param> + <param name="strongAssemblyName">The simple name of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + <param name="strongModulePath">The path and file name of the manifest module of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + <param name="weakAssemblyName">The simple name of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + <param name="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.#ctor(System.Boolean,Castle.DynamicProxy.Generators.INamingScope,System.String,System.String,System.String,System.String)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + </summary> + <param name="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param> + <param name="namingScope">Naming scope used to provide unique names to generated types and their members (usually via sub-scopes).</param> + <param name="strongAssemblyName">The simple name of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + <param name="strongModulePath">The path and file name of the manifest module of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + <param name="weakAssemblyName">The simple name of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + <param name="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.GetFromCache(Castle.DynamicProxy.Generators.CacheKey)"> + <summary> + Returns a type from this scope's type cache, or null if the key cannot be found. + </summary> + <param name="key">The key to be looked up in the cache.</param> + <returns>The type from this scope's type cache matching the key, or null if the key cannot be found</returns> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.RegisterInCache(Castle.DynamicProxy.Generators.CacheKey,System.Type)"> + <summary> + Registers a type in this scope's type cache. + </summary> + <param name="key">The key to be associated with the type.</param> + <param name="type">The type to be stored in the cache.</param> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.GetKeyPair"> + <summary> + Gets the key pair used to sign the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>. + </summary> + <returns></returns> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.ObtainDynamicModule(System.Boolean)"> + <summary> + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + </summary> + <param name="isStrongNamed">If set to true, a strong-named module is returned; otherwise, a weak-named module is returned.</param> + <returns>A strong-named or weak-named module generated by this scope, as specified by the <paramref name="isStrongNamed"/> parameter.</returns> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongName"> + <summary> + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + </summary> + <returns>A strong-named module generated by this scope.</returns> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithWeakName"> + <summary> + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + </summary> + <returns>A weak-named module generated by this scope.</returns> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.SaveAssembly"> + <summary> + Saves the generated assembly with the name and directory information given when this <see cref="T:Castle.DynamicProxy.ModuleScope"/> instance was created (or with + the <see cref="F:Castle.DynamicProxy.ModuleScope.DEFAULT_FILE_NAME"/> and current directory if none was given). + </summary> + <remarks> + <para> + This method stores the generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). If both a strong-named and a weak-named assembly + have been generated, it will throw an exception; in this case, use the <see cref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly(System.Boolean)"/> overload. + </para> + <para> + If this <see cref="T:Castle.DynamicProxy.ModuleScope"/> was created without indicating that the assembly should be saved, this method does nothing. + </para></remarks> + <exception cref="T:System.InvalidOperationException">Both a strong-named and a weak-named assembly have been generated.</exception> + <returns>The path of the generated assembly file, or null if no file has been generated.</returns> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.SaveAssembly(System.Boolean)"> + <summary> + Saves the specified generated assembly with the name and directory information given when this <see cref="T:Castle.DynamicProxy.ModuleScope"/> instance was created + (or with the <see cref="F:Castle.DynamicProxy.ModuleScope.DEFAULT_FILE_NAME"/> and current directory if none was given). + </summary> + <param name="strongNamed">True if the generated assembly with a strong name should be saved (see <see cref="P:Castle.DynamicProxy.ModuleScope.StrongNamedModule"/>); + false if the generated assembly without a strong name should be saved (see <see cref="P:Castle.DynamicProxy.ModuleScope.WeakNamedModule"/>.</param> + <remarks> + <para> + This method stores the specified generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). + </para> + <para> + If this <see cref="T:Castle.DynamicProxy.ModuleScope"/> was created without indicating that the assembly should be saved, this method does nothing. + </para> + </remarks> + <exception cref="T:System.InvalidOperationException">No assembly has been generated that matches the <paramref name="strongNamed"/> parameter. + </exception> + <returns>The path of the generated assembly file, or null if no file has been generated.</returns> + </member> + <member name="M:Castle.DynamicProxy.ModuleScope.LoadAssemblyIntoCache(System.Reflection.Assembly)"> + <summary> + Loads the generated types from the given assembly into this <see cref="T:Castle.DynamicProxy.ModuleScope"/>'s cache. + </summary> + <param name="assembly">The assembly to load types from. This assembly must have been saved via <see cref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly(System.Boolean)"/> or + <see cref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly"/>, or it must have the <see cref="T:Castle.DynamicProxy.CacheMappingsAttribute"/> manually applied.</param> + <remarks> + This method can be used to load previously generated and persisted proxy types from disk into this scope's type cache, eg. in order + to avoid the performance hit associated with proxy generation. + </remarks> + </member> + <member name="P:Castle.DynamicProxy.ModuleScope.Lock"> + <summary> + Users of this <see cref="T:Castle.DynamicProxy.ModuleScope"/> should use this lock when accessing the cache. + </summary> + </member> + <member name="P:Castle.DynamicProxy.ModuleScope.StrongNamedModule"> + <summary> + Gets the strong-named module generated by this scope, or <see langword="null"/> if none has yet been generated. + </summary> + <value>The strong-named module generated by this scope, or <see langword="null"/> if none has yet been generated.</value> + </member> + <member name="P:Castle.DynamicProxy.ModuleScope.StrongNamedModuleName"> + <summary> + Gets the file name of the strongly named module generated by this scope. + </summary> + <value>The file name of the strongly named module generated by this scope.</value> + </member> + <member name="P:Castle.DynamicProxy.ModuleScope.StrongNamedModuleDirectory"> + <summary> + Gets the directory where the strongly named module generated by this scope will be saved, or <see langword="null"/> if the current directory + is used. + </summary> + <value>The directory where the strongly named module generated by this scope will be saved when <see cref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly"/> is called + (if this scope was created to save modules).</value> + </member> + <member name="P:Castle.DynamicProxy.ModuleScope.WeakNamedModule"> + <summary> + Gets the weak-named module generated by this scope, or <see langword="null"/> if none has yet been generated. + </summary> + <value>The weak-named module generated by this scope, or <see langword="null"/> if none has yet been generated.</value> + </member> + <member name="P:Castle.DynamicProxy.ModuleScope.WeakNamedModuleName"> + <summary> + Gets the file name of the weakly named module generated by this scope. + </summary> + <value>The file name of the weakly named module generated by this scope.</value> + </member> + <member name="P:Castle.DynamicProxy.ModuleScope.WeakNamedModuleDirectory"> + <summary> + Gets the directory where the weakly named module generated by this scope will be saved, or <see langword="null"/> if the current directory + is used. + </summary> + <value>The directory where the weakly named module generated by this scope will be saved when <see cref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly"/> is called + (if this scope was created to save modules).</value> + </member> + <member name="T:Castle.DynamicProxy.PersistentProxyBuilder"> + <summary> + ProxyBuilder that persists the generated type. + </summary> + <remarks> + The saved assembly contains just the last generated type. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.PersistentProxyBuilder.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.PersistentProxyBuilder"/> class. + </summary> + </member> + <member name="M:Castle.DynamicProxy.PersistentProxyBuilder.SaveAssembly"> + <summary> + Saves the generated assembly to a physical file. Note that this renders the <see cref="T:Castle.DynamicProxy.PersistentProxyBuilder"/> unusable. + </summary> + <returns>The path of the generated assembly file, or null if no assembly has been generated.</returns> + <remarks>This method does not support saving multiple files. If both a signed and an unsigned module have been generated, use the + respective methods of the <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerationOptions.#ctor(Castle.DynamicProxy.IProxyGenerationHook)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ProxyGenerationOptions"/> class. + </summary> + <param name="hook">The hook.</param> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerationOptions.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ProxyGenerationOptions"/> class. + </summary> + </member> + <member name="T:Castle.DynamicProxy.ProxyGenerator"> + <summary> + Provides proxy objects for classes and interfaces. + </summary> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.#ctor(Castle.DynamicProxy.IProxyBuilder)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> class. + </summary> + <param name="builder">Proxy types builder.</param> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> class. + </summary> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget``1(``0,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns>Object proxying calls to members of <typeparamref name="TInterface"/> on <paramref name="target"/> object.</returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/>is not an interface type.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target + use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.IInterceptor[])"/> method. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <typeparamref name="TInterface"/> on <paramref name="target"/> object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/>is not an interface type.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target + use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"/> method. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget(System.Type,System.Object,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> type on <paramref name="target"/> object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target + use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.IInterceptor[])"/> method. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> type on <paramref name="target"/> object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target + use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"/> method. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget(System.Type,System.Type[],System.Object,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on <paramref name="target"/> object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target + use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.IInterceptor[])"/> method. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on <paramref name="target"/> object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target + use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"/> method. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + Interceptors can use <see cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + Interceptors can use <see cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>. + </summary> + <typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <typeparamref name="TInterface"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + Interceptors can use <see cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>. + </summary> + <typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <typeparamref name="TInterface"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + Interceptors can use <see cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + Interceptors can use <see cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>. + Interceptors can use <see cref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>. + </summary> + <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception> + <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget``1(Castle.DynamicProxy.IInterceptor)"> + <summary> + Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on target object generated at runtime with given <paramref name="interceptor"/>. + </summary> + <typeparam name="TInterface">Type of the interface which will be proxied.</typeparam> + <param name="interceptor">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <typeparamref name="TInterface"/> types on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception> + <remarks> + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + As a result of that also at least one <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementation must be provided. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget``1(Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on target object generated at runtime with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TInterface">Type of the interface which will be proxied.</typeparam> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <typeparamref name="TInterface"/> types on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception> + <remarks> + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + As a result of that also at least one <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementation must be provided. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget``1(Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on target object generated at runtime with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TInterface">Type of the interface which will be proxied.</typeparam> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <typeparamref name="TInterface"/> types on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception> + <remarks> + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + As a result of that also at least one <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementation must be provided. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,Castle.DynamicProxy.IInterceptor)"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptor"/>. + </summary> + <param name="interfaceToProxy">Type of the interface which will be proxied.</param> + <param name="interceptor">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> type on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <remarks> + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface which will be proxied.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> type on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <remarks> + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface which will be proxied.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <remarks> + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface which will be proxied.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <remarks> + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>. + </summary> + <param name="interfaceToProxy">Type of the interface which will be proxied.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on generated target object. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception> + <remarks> + Since this method uses an empty-shell implementation of <paramref name="additionalInterfacesToProxy"/> to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with. + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget``1(``0,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <typeparamref name="TClass"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TClass">Type of class which will be proxied.</typeparam> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type. + </returns> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <typeparamref name="TClass"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TClass">Type of class which will be proxied.</typeparam> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type. + </returns> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget(System.Type,System.Type[],System.Object,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,System.Object[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget(System.Type,System.Object,System.Object[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget(System.Type,System.Object,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no parameterless constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyWithTarget(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,System.Object[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="target">The target object, calls to which will be intercepted.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy``1(Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <typeparamref name="TClass"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TClass">Type of class which will be proxied.</typeparam> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type. + </returns> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy``1(Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <typeparamref name="TClass"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <typeparam name="TClass">Type of class which will be proxied.</typeparam> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type. + </returns> + <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,System.Type[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,System.Object[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,System.Object[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no parameterless constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions,System.Object[],Castle.DynamicProxy.IInterceptor[])"> + <summary> + Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>. + </summary> + <param name="classToProxy">Type of class which will be proxied.</param> + <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param> + <param name="options">The proxy generation options used to influence generated proxy type and object.</param> + <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param> + <param name="interceptors">The interceptors called during the invocation of proxied methods.</param> + <returns> + New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types. + </returns> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception> + <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception> + <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception> + <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception> + <remarks> + This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type. + As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw. + </remarks> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxyType(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates the proxy type for class proxy with given <paramref name="classToProxy"/> class, implementing given <paramref name="additionalInterfacesToProxy"/> and using provided <paramref name="options"/>. + </summary> + <param name="classToProxy">The base class for proxy type.</param> + <param name="additionalInterfacesToProxy">The interfaces that proxy type should implement.</param> + <param name="options">The options for proxy generation process.</param> + <returns><see cref="T:System.Type"/> of proxy.</returns> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithTarget(System.Type,System.Type[],System.Type,Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates the proxy type for interface proxy with target for given <paramref name="interfaceToProxy"/> interface, implementing given <paramref name="additionalInterfacesToProxy"/> on given <paramref name="targetType"/> and using provided <paramref name="options"/>. + </summary> + <param name="interfaceToProxy">The interface proxy type should implement.</param> + <param name="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param> + <param name="targetType">Actual type that the proxy type will encompass.</param> + <param name="options">The options for proxy generation process.</param> + <returns><see cref="T:System.Type"/> of proxy.</returns> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithTargetInterface(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates the proxy type for interface proxy with target interface for given <paramref name="interfaceToProxy"/> interface, implementing given <paramref name="additionalInterfacesToProxy"/> on given <paramref name="interfaceToProxy"/> and using provided <paramref name="options"/>. + </summary> + <param name="interfaceToProxy">The interface proxy type should implement.</param> + <param name="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param> + <param name="options">The options for proxy generation process.</param> + <returns><see cref="T:System.Type"/> of proxy.</returns> + </member> + <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"> + <summary> + Creates the proxy type for interface proxy without target for given <paramref name="interfaceToProxy"/> interface, implementing given <paramref name="additionalInterfacesToProxy"/> and using provided <paramref name="options"/>. + </summary> + <param name="interfaceToProxy">The interface proxy type should implement.</param> + <param name="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param> + <param name="options">The options for proxy generation process.</param> + <returns><see cref="T:System.Type"/> of proxy.</returns> + </member> + <member name="P:Castle.DynamicProxy.ProxyGenerator.Logger"> + <summary> + Gets or sets the <see cref="T:Castle.Core.Logging.ILogger"/> that this <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> log to. + </summary> + </member> + <member name="P:Castle.DynamicProxy.ProxyGenerator.ProxyBuilder"> + <summary> + Gets the proxy builder instance used to generate proxy types. + </summary> + <value>The proxy builder.</value> + </member> + <member name="M:Castle.DynamicProxy.RemotableInvocation.Proceed"> + <summary> + + </summary> + <returns></returns> + </member> + <member name="P:Castle.DynamicProxy.RemotableInvocation.Method"> + <summary> + + </summary> + </member> + <member name="P:Castle.DynamicProxy.RemotableInvocation.MethodInvocationTarget"> + <summary> + For interface proxies, this will point to the + <see cref="T:System.Reflection.MethodInfo"/> on the target class + </summary> + </member> + <member name="T:Castle.DynamicProxy.Serialization.ProxyObjectReference"> + <summary> + Handles the deserialization of proxies. + </summary> + </member> + <member name="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.ResetScope"> + <summary> + Resets the <see cref="P:Castle.DynamicProxy.Serialization.ProxyObjectReference.ModuleScope"/> used for deserialization to a new scope. + </summary> + <remarks>This is useful for test cases.</remarks> + </member> + <member name="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.SetScope(Castle.DynamicProxy.ModuleScope)"> + <summary> + Resets the <see cref="P:Castle.DynamicProxy.Serialization.ProxyObjectReference.ModuleScope"/> used for deserialization to a given <paramref name="scope"/>. + </summary> + <param name="scope">The scope to be used for deserialization.</param> + <remarks>By default, the deserialization process uses a different scope than the rest of the application, which can lead to multiple proxies + being generated for the same type. By explicitly setting the deserialization scope to the application's scope, this can be avoided.</remarks> + </member> + <member name="P:Castle.DynamicProxy.Serialization.ProxyObjectReference.ModuleScope"> + <summary> + Gets the <see cref="T:Castle.DynamicProxy.ModuleScope"/> used for deserialization. + </summary> + <value>As <see cref="T:Castle.DynamicProxy.Serialization.ProxyObjectReference"/> has no way of automatically determining the scope used by the application (and the application + might use more than one scope at the same time), <see cref="T:Castle.DynamicProxy.Serialization.ProxyObjectReference"/> uses a dedicated scope instance for deserializing proxy + types. This instance can be reset and set to a specific value via <see cref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.ResetScope"/> and <see cref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.SetScope(Castle.DynamicProxy.ModuleScope)"/>.</value> + </member> + <member name="T:Castle.DynamicProxy.Tokens.InvocationMethods"> + <summary> + Holds <see cref="T:System.Reflection.MethodInfo"/> objects representing methods of <see cref="T:Castle.DynamicProxy.AbstractInvocation"/> class. + </summary> + </member> + <member name="T:Castle.DynamicProxy.Tokens.SerializationInfoMethods"> + <summary> + Holds <see cref="T:System.Reflection.MethodInfo"/> objects representing methods of <see cref="T:System.Runtime.Serialization.SerializationInfo"/> class. + </summary> + </member> + <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Bool"> + <summary> + <see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Boolean)"/> + </summary> + </member> + <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Int32"> + <summary> + <see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Int32)"/> + </summary> + </member> + <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Object"> + <summary> + <see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Object)"/> + </summary> + </member> + <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.GetValue"> + <summary> + <see cref="M:System.Runtime.Serialization.SerializationInfo.GetValue(System.String,System.Type)"/> + </summary> + </member> + <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.SetType"> + <summary> + <see cref="M:System.Runtime.Serialization.SerializationInfo.SetType(System.Type)"/> + </summary> + </member> + <member name="T:Castle.DynamicProxy.IInterceptorSelector"> + <summary> + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + </summary> + </member> + <member name="M:Castle.DynamicProxy.IInterceptorSelector.SelectInterceptors(System.Type,System.Reflection.MethodInfo,Castle.DynamicProxy.IInterceptor[])"> + <summary> + Selects the interceptors that should intercept calls to the given <paramref name="method"/>. + </summary> + <param name="type">The type declaring the method to intercept.</param> + <param name="method">The method that will be intercepted.</param> + <param name="interceptors">All interceptors registered with the proxy.</param> + <returns>An array of interceptors to invoke upon calling the <paramref name="method"/>.</returns> + <remarks> + This method is called only once per proxy instance, upon the first call to the + <paramref name="method"/>. Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other <see cref="T:Castle.DynamicProxy.IInterceptor"/> implementations than these provided in + <paramref name="interceptors"/>. + </remarks> + </member> + <member name="M:Castle.Core.Internal.Lock.Create"> + <summary> + Creates a new lock. + </summary> + <returns></returns> + </member> + <member name="T:Castle.Core.IServiceProviderExAccessor"> + <summary> + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + <para> + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + </para> + </summary> + </member> + <member name="T:Castle.DynamicProxy.IChangeProxyTarget"> + <summary> + Exposes means to change target objects of proxies and invocations + </summary> + </member> + <member name="M:Castle.DynamicProxy.IChangeProxyTarget.ChangeInvocationTarget(System.Object)"> + <summary> + Changes the target object (<see cref="P:Castle.DynamicProxy.IInvocation.InvocationTarget"/>) of current <see cref="T:Castle.DynamicProxy.IInvocation"/>. + </summary> + <param name="target">The new value of target of invocation.</param> + <remarks> + Although the method takes <see cref="T:System.Object"/> the actual instance must be of type assignable to <see cref="P:Castle.DynamicProxy.IInvocation.TargetType"/>, otherwise an <see cref="T:System.InvalidCastException"/> will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as <paramref name="target"/>, for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <see cref="T:System.NotImplementedException"/> will be throws. + Also while it's technically legal to pass proxy itself as <paramref name="target"/>, this would create stack overflow. + In this case last interceptor in the pipeline mustn't call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <see cref="T:System.InvalidOperationException"/> will be throws. + </remarks> + <exception cref="T:System.InvalidCastException">Thrown when <paramref name="target"/> is not assignable to the proxied type.</exception> + </member> + <member name="M:Castle.DynamicProxy.IChangeProxyTarget.ChangeProxyTarget(System.Object)"> + <summary> + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + </summary> + <param name="target">The new value of target of the proxy.</param> + <remarks> + Although the method takes <see cref="T:System.Object"/> the actual instance must be of type assignable to proxy's target type, otherwise an <see cref="T:System.InvalidCastException"/> will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as <paramref name="target"/>, for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <see cref="T:System.NotImplementedException"/> will be throws. + Also while it's technically legal to pass proxy itself as <paramref name="target"/>, this would create stack overflow. + In this case last interceptor in the pipeline mustn't call <see cref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <see cref="T:System.InvalidOperationException"/> will be throws. + </remarks> + <exception cref="T:System.InvalidCastException">Thrown when <paramref name="target"/> is not assignable to the proxied type.</exception> + </member> + <member name="T:Castle.DynamicProxy.IInterceptor"> + <summary> + New interface that is going to be used by DynamicProxy 2 + </summary> + </member> + <member name="M:Castle.DynamicProxy.IProxyTargetAccessor.DynProxyGetTarget"> + <summary> + Get the proxy target (note that null is a valid target!) + </summary> + <returns></returns> + </member> + <member name="M:Castle.DynamicProxy.IProxyTargetAccessor.GetInterceptors"> + <summary> + Gets the interceptors for the proxy + </summary> + <returns></returns> + </member> + <member name="T:Castle.Core.IServiceEnabledComponent"> + <summary> + Defines that the implementation wants a + <see cref="T:System.IServiceProvider"/> in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + </summary> + <remarks> + Used by Castle Project components to, for example, + gather logging factories + </remarks> + </member> + <member name="T:Castle.Core.IServiceProviderEx"> + <summary> + Increments <c>IServiceProvider</c> with a generic service resolution operation. + </summary> + </member> + <member name="T:Castle.Core.Logging.IExtendedLoggerFactory"> + <summary> + Provides a factory that can produce either <see cref="T:Castle.Core.Logging.ILogger"/> or + <see cref="T:Castle.Core.Logging.IExtendedLogger"/> classes. + </summary> + </member> + <member name="T:Castle.Core.Logging.ILoggerFactory"> + <summary> + Manages the instantiation of <see cref="T:Castle.Core.Logging.ILogger"/>s. + </summary> + </member> + <member name="M:Castle.Core.Logging.ILoggerFactory.Create(System.Type)"> + <summary> + Creates a new logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.ILoggerFactory.Create(System.String)"> + <summary> + Creates a new logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.ILoggerFactory.Create(System.Type,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.ILoggerFactory.Create(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.IExtendedLoggerFactory.Create(System.Type)"> + <summary> + Creates a new extended logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.IExtendedLoggerFactory.Create(System.String)"> + <summary> + Creates a new extended logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.IExtendedLoggerFactory.Create(System.Type,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new extended logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.IExtendedLoggerFactory.Create(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new extended logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Create(System.Type)"> + <summary> + Creates a new extended logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Create(System.String)"> + <summary> + Creates a new extended logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Create(System.Type,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new extended logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Create(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new extended logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Castle#Core#Logging#ILoggerFactory#Create(System.Type)"> + <summary> + Creates a new logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Castle#Core#Logging#ILoggerFactory#Create(System.String)"> + <summary> + Creates a new logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Castle#Core#Logging#ILoggerFactory#Create(System.Type,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new logger, getting the logger name from the specified type. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.Castle#Core#Logging#ILoggerFactory#Create(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new logger. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractExtendedLoggerFactory.GetConfigFile(System.String)"> + <summary> + Gets the configuration file. + </summary> + <param name="fileName">i.e. log4net.config</param> + <returns></returns> + </member> + <member name="T:Castle.Core.Logging.TraceLoggerFactory"> + <summary> + Used to create the TraceLogger implementation of ILogger interface. See <see cref="T:Castle.Core.Logging.TraceLogger"/>. + </summary> + </member> + <member name="M:Castle.Core.Logging.AbstractLoggerFactory.GetConfigFile(System.String)"> + <summary> + Gets the configuration file. + </summary> + <param name="fileName">i.e. log4net.config</param> + <returns></returns> + </member> + <member name="T:Castle.Core.Logging.IContextProperties"> + <summary> + Interface for Context Properties implementations + </summary> + <remarks> + <para> + This interface defines a basic property get set accessor. + </para> + <para> + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + </para> + </remarks> + </member> + <member name="P:Castle.Core.Logging.IContextProperties.Item(System.String)"> + <summary> + Gets or sets the value of a property + </summary> + <value> + The value for the property with the specified key + </value> + <remarks> + <para> + Gets or sets the value of a property + </para> + </remarks> + </member> + <member name="T:Castle.Core.Logging.NullLogFactory"> + <summary> + NullLogFactory used when logging is turned off. + </summary> + </member> + <member name="M:Castle.Core.Logging.NullLogFactory.Create(System.String)"> + <summary> + Creates an instance of ILogger with the specified name. + </summary> + <param name="name">Name.</param> + <returns></returns> + </member> + <member name="M:Castle.Core.Logging.NullLogFactory.Create(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates an instance of ILogger with the specified name and LoggerLevel. + </summary> + <param name="name">Name.</param> + <param name="level">Level.</param> + <returns></returns> + </member> + <member name="T:Castle.Core.Logging.StreamLoggerFactory"> + <summary> + Creates <see cref="T:Castle.Core.Logging.StreamLogger"/> outputing + to files. The name of the file is derived from the log name + plus the 'log' extension. + </summary> + </member> + <member name="T:Castle.Core.Logging.IExtendedLogger"> + <summary> + Provides an interface that supports <see cref="T:Castle.Core.Logging.ILogger"/> and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + </summary> + </member> + <member name="T:Castle.Core.Logging.ILogger"> + <summary> + Manages logging. + </summary> + <remarks> + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + </remarks> + </member> + <member name="M:Castle.Core.Logging.ILogger.Debug(System.String)"> + <summary> + Logs a debug message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Debug(System.String,System.Exception)"> + <summary> + Logs a debug message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Debug(System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.DebugFormat(System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.DebugFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.DebugFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.DebugFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Info(System.String)"> + <summary> + Logs an info message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Info(System.String,System.Exception)"> + <summary> + Logs an info message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Info(System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.InfoFormat(System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.InfoFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.InfoFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.InfoFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Warn(System.String)"> + <summary> + Logs a warn message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Warn(System.String,System.Exception)"> + <summary> + Logs a warn message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Warn(System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.WarnFormat(System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.WarnFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.WarnFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.WarnFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Error(System.String)"> + <summary> + Logs an error message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Error(System.String,System.Exception)"> + <summary> + Logs an error message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Error(System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.ErrorFormat(System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.ErrorFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.ErrorFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Fatal(System.String)"> + <summary> + Logs a fatal message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Fatal(System.String,System.Exception)"> + <summary> + Logs a fatal message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.Fatal(System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.FatalFormat(System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.FatalFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.FatalFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.FatalFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.FatalError(System.String)"> + <summary> + Logs a fatal error message. + </summary> + <param name="message">The Message</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.FatalError(System.String,System.Exception)"> + <summary> + Logs a fatal error message. + </summary> + <param name="message">The Message</param> + <param name="exception">The Exception</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.FatalError(System.String,System.Object[])"> + <summary> + Logs a fatal error message. + </summary> + <param name="format">Message format</param> + <param name="args">Array of objects to write using format</param> + </member> + <member name="M:Castle.Core.Logging.ILogger.CreateChildLogger(System.String)"> + <summary> + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + </summary> + <param name="loggerName">The Subname of this logger.</param> + <returns>The New ILogger instance.</returns> + <exception cref="T:System.ArgumentException">If the name has an empty element name.</exception> + </member> + <member name="P:Castle.Core.Logging.ILogger.IsDebugEnabled"> + <summary> + Determines if messages of priority "debug" will be logged. + </summary> + <value>True if "debug" messages will be logged.</value> + </member> + <member name="P:Castle.Core.Logging.ILogger.IsInfoEnabled"> + <summary> + Determines if messages of priority "info" will be logged. + </summary> + <value>True if "info" messages will be logged.</value> + </member> + <member name="P:Castle.Core.Logging.ILogger.IsWarnEnabled"> + <summary> + Determines if messages of priority "warn" will be logged. + </summary> + <value>True if "warn" messages will be logged.</value> + </member> + <member name="P:Castle.Core.Logging.ILogger.IsErrorEnabled"> + <summary> + Determines if messages of priority "error" will be logged. + </summary> + <value>True if "error" messages will be logged.</value> + </member> + <member name="P:Castle.Core.Logging.ILogger.IsFatalEnabled"> + <summary> + Determines if messages of priority "fatal" will be logged. + </summary> + <value>True if "fatal" messages will be logged.</value> + </member> + <member name="P:Castle.Core.Logging.ILogger.IsFatalErrorEnabled"> + <summary> + Determines if messages of priority "fatalError" will be logged. + </summary> + <value>True if "fatalError" messages will be logged.</value> + </member> + <member name="P:Castle.Core.Logging.IExtendedLogger.GlobalProperties"> + <summary> + Exposes the Global Context of the extended logger. + </summary> + </member> + <member name="P:Castle.Core.Logging.IExtendedLogger.ThreadProperties"> + <summary> + Exposes the Thread Context of the extended logger. + </summary> + </member> + <member name="P:Castle.Core.Logging.IExtendedLogger.ThreadStacks"> + <summary> + Exposes the Thread Stack of the extended logger. + </summary> + </member> + <member name="T:Castle.Core.Logging.LoggerLevel"> + <summary> + Supporting Logger levels. + </summary> + </member> + <member name="F:Castle.Core.Logging.LoggerLevel.Off"> + <summary> + Logging will be off + </summary> + </member> + <member name="F:Castle.Core.Logging.LoggerLevel.Fatal"> + <summary> + Fatal logging level + </summary> + </member> + <member name="F:Castle.Core.Logging.LoggerLevel.Error"> + <summary> + Error logging level + </summary> + </member> + <member name="F:Castle.Core.Logging.LoggerLevel.Warn"> + <summary> + Warn logging level + </summary> + </member> + <member name="F:Castle.Core.Logging.LoggerLevel.Info"> + <summary> + Info logging level + </summary> + </member> + <member name="F:Castle.Core.Logging.LoggerLevel.Debug"> + <summary> + Debug logging level + </summary> + </member> + <member name="T:Castle.Core.Logging.ConsoleLogger"> + <summary> + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + </summary> + </member> + <member name="T:Castle.Core.Logging.LevelFilteredLogger"> + <summary> + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + </summary> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.#ctor"> + <summary> + Creates a new <c>LevelFilteredLogger</c>. + </summary> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.InitializeLifetimeService"> + <summary> + Keep the instance alive in a remoting scenario + </summary> + <returns></returns> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Debug(System.String)"> + <summary> + Logs a debug message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Debug(System.String,System.Exception)"> + <summary> + Logs a debug message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.DebugFormat(System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.DebugFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.DebugFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.DebugFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Debug(System.String,System.Object[])"> + <summary> + Logs a debug message. + </summary> + <param name="format">Message format</param> + <param name="args">Array of objects to write using format</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Info(System.String)"> + <summary> + Logs an info message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Info(System.String,System.Exception)"> + <summary> + Logs an info message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.InfoFormat(System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.InfoFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.InfoFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.InfoFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Info(System.String,System.Object[])"> + <summary> + Logs an info message. + </summary> + <param name="format">Message format</param> + <param name="args">Array of objects to write using format</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Warn(System.String)"> + <summary> + Logs a warn message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Warn(System.String,System.Exception)"> + <summary> + Logs a warn message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.WarnFormat(System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.WarnFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.WarnFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.WarnFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Warn(System.String,System.Object[])"> + <summary> + Logs a warn message. + </summary> + <param name="format">Message format</param> + <param name="args">Array of objects to write using format</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Error(System.String)"> + <summary> + Logs an error message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Error(System.String,System.Exception)"> + <summary> + Logs an error message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.ErrorFormat(System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.ErrorFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.ErrorFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Error(System.String,System.Object[])"> + <summary> + Logs an error message. + </summary> + <param name="format">Message format</param> + <param name="args">Array of objects to write using format</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Fatal(System.String)"> + <summary> + Logs a fatal message. + </summary> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Fatal(System.String,System.Exception)"> + <summary> + Logs a fatal message. + </summary> + <param name="exception">The exception to log</param> + <param name="message">The message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.FatalFormat(System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.FatalFormat(System.Exception,System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="exception">The exception to log</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.FatalFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.FatalFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="exception">The exception to log</param> + <param name="formatProvider">The format provider to use</param> + <param name="format">Format string for the message to log</param> + <param name="args">Format arguments for the message to log</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Fatal(System.String,System.Object[])"> + <summary> + Logs a fatal message. + </summary> + <param name="format">Message format</param> + <param name="args">Array of objects to write using format</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.FatalError(System.String)"> + <summary> + Logs a fatal error message. + </summary> + <param name="message">The Message</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.FatalError(System.String,System.Exception)"> + <summary> + Logs a fatal error message. + </summary> + <param name="message">The Message</param> + <param name="exception">The Exception</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.FatalError(System.String,System.Object[])"> + <summary> + Logs a fatal error message. + </summary> + <param name="format">Message format</param> + <param name="args">Array of objects to write using format</param> + </member> + <member name="M:Castle.Core.Logging.LevelFilteredLogger.Log(Castle.Core.Logging.LoggerLevel,System.String,System.String,System.Exception)"> + <summary> + Implementors output the log content by implementing this method only. + Note that exception can be null + </summary> + <param name="loggerLevel"></param> + <param name="loggerName"></param> + <param name="message"></param> + <param name="exception"></param> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.Level"> + <value> + The <c>LoggerLevel</c> that this logger + will be using. Defaults to <c>LoggerLevel.Off</c> + </value> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.Name"> + <value> + The name that this logger will be using. + Defaults to <c>String.Empty</c> + </value> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.IsDebugEnabled"> + <summary> + Determines if messages of priority "debug" will be logged. + </summary> + <value><c>true</c> if log level flags include the <see cref="F:Castle.Core.Logging.LoggerLevel.Debug"/> bit</value> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.IsInfoEnabled"> + <summary> + Determines if messages of priority "info" will be logged. + </summary> + <value><c>true</c> if log level flags include the <see cref="F:Castle.Core.Logging.LoggerLevel.Info"/> bit</value> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.IsWarnEnabled"> + <summary> + Determines if messages of priority "warn" will be logged. + </summary> + <value><c>true</c> if log level flags include the <see cref="F:Castle.Core.Logging.LoggerLevel.Warn"/> bit</value> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.IsErrorEnabled"> + <summary> + Determines if messages of priority "error" will be logged. + </summary> + <value><c>true</c> if log level flags include the <see cref="F:Castle.Core.Logging.LoggerLevel.Error"/> bit</value> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.IsFatalEnabled"> + <summary> + Determines if messages of priority "fatal" will be logged. + </summary> + <value><c>true</c> if log level flags include the <see cref="F:Castle.Core.Logging.LoggerLevel.Fatal"/> bit</value> + </member> + <member name="P:Castle.Core.Logging.LevelFilteredLogger.IsFatalErrorEnabled"> + <summary> + Determines if messages of priority "fatal" will be logged. + </summary> + <value><c>true</c> if log level flags include the <see cref="F:Castle.Core.Logging.LoggerLevel.Fatal"/> bit</value> + </member> + <member name="M:Castle.Core.Logging.ConsoleLogger.#ctor"> + <summary> + Creates a new ConsoleLogger with the <c>Level</c> + set to <c>LoggerLevel.Debug</c> and the <c>Name</c> + set to <c>String.Empty</c>. + </summary> + </member> + <member name="M:Castle.Core.Logging.ConsoleLogger.#ctor(Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new ConsoleLogger with the <c>Name</c> + set to <c>String.Empty</c>. + </summary> + <param name="logLevel">The logs Level.</param> + </member> + <member name="M:Castle.Core.Logging.ConsoleLogger.#ctor(System.String)"> + <summary> + Creates a new ConsoleLogger with the <c>Level</c> + set to <c>LoggerLevel.Debug</c>. + </summary> + <param name="name">The logs Name.</param> + </member> + <member name="M:Castle.Core.Logging.ConsoleLogger.#ctor(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new ConsoleLogger. + </summary> + <param name="name">The logs Name.</param> + <param name="logLevel">The logs Level.</param> + </member> + <member name="M:Castle.Core.Logging.ConsoleLogger.Log(Castle.Core.Logging.LoggerLevel,System.String,System.String,System.Exception)"> + <summary> + A Common method to log. + </summary> + <param name="loggerLevel">The level of logging</param> + <param name="loggerName">The name of the logger</param> + <param name="message">The Message</param> + <param name="exception">The Exception</param> + </member> + <member name="M:Castle.Core.Logging.ConsoleLogger.CreateChildLogger(System.String)"> + <summary> + Returns a new <c>ConsoleLogger</c> with the name + added after this loggers name, with a dot in between. + </summary> + <param name="loggerName">The added hierarchical name.</param> + <returns>A new <c>ConsoleLogger</c>.</returns> + </member> + <member name="T:Castle.Core.Logging.DiagnosticsLogger"> + <summary> + The Logger using standart Diagnostics namespace. + </summary> + </member> + <member name="M:Castle.Core.Logging.DiagnosticsLogger.#ctor(System.String)"> + <summary> + Creates a logger based on <see cref="T:System.Diagnostics.EventLog"/>. + </summary> + <param name="logName"><see cref="P:System.Diagnostics.EventLog.Log"/></param> + </member> + <member name="M:Castle.Core.Logging.DiagnosticsLogger.#ctor(System.String,System.String)"> + <summary> + Creates a logger based on <see cref="T:System.Diagnostics.EventLog"/>. + </summary> + <param name="logName"><see cref="P:System.Diagnostics.EventLog.Log"/></param> + <param name="source"><see cref="P:System.Diagnostics.EventLog.Source"/></param> + </member> + <member name="M:Castle.Core.Logging.DiagnosticsLogger.#ctor(System.String,System.String,System.String)"> + <summary> + Creates a logger based on <see cref="T:System.Diagnostics.EventLog"/>. + </summary> + <param name="logName"><see cref="P:System.Diagnostics.EventLog.Log"/></param> + <param name="machineName"><see cref="P:System.Diagnostics.EventLog.MachineName"/></param> + <param name="source"><see cref="P:System.Diagnostics.EventLog.Source"/></param> + </member> + <member name="T:Castle.Core.Logging.NullLogger"> + <summary> + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + </summary> + </member> + <member name="M:Castle.Core.Logging.NullLogger.#ctor"> + <summary> + Creates a new <c>NullLogger</c>. + </summary> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Debug(System.String)"> + <summary> + No-op. + </summary> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Debug(System.String,System.Exception)"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Debug(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.DebugFormat(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.DebugFormat(System.Exception,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.DebugFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.DebugFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Info(System.String)"> + <summary> + No-op. + </summary> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Info(System.String,System.Exception)"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Info(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.InfoFormat(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.InfoFormat(System.Exception,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.InfoFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.InfoFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Warn(System.String)"> + <summary> + No-op. + </summary> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Warn(System.String,System.Exception)"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Warn(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.WarnFormat(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.WarnFormat(System.Exception,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.WarnFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.WarnFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Error(System.String)"> + <summary> + No-op. + </summary> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Error(System.String,System.Exception)"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Error(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.ErrorFormat(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.ErrorFormat(System.Exception,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.ErrorFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.ErrorFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Fatal(System.String)"> + <summary> + No-op. + </summary> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Fatal(System.String,System.Exception)"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.Fatal(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.FatalFormat(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.FatalFormat(System.Exception,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.FatalFormat(System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.FatalFormat(System.Exception,System.IFormatProvider,System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="exception">Ignored</param> + <param name="formatProvider">Ignored</param> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.FatalError(System.String)"> + <summary> + No-op. + </summary> + <param name="message">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.FatalError(System.String,System.Exception)"> + <summary> + No-op. + </summary> + <param name="message">Ignored</param> + <param name="exception">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.FatalError(System.String,System.Object[])"> + <summary> + No-op. + </summary> + <param name="format">Ignored</param> + <param name="args">Ignored</param> + </member> + <member name="M:Castle.Core.Logging.NullLogger.CreateChildLogger(System.String)"> + <summary> + Returns this <c>NullLogger</c>. + </summary> + <param name="loggerName">Ignored</param> + <returns>This ILogger instance.</returns> + </member> + <member name="P:Castle.Core.Logging.NullLogger.IsDebugEnabled"> + <summary> + No-op. + </summary> + <value>false</value> + </member> + <member name="P:Castle.Core.Logging.NullLogger.IsInfoEnabled"> + <summary> + No-op. + </summary> + <value>false</value> + </member> + <member name="P:Castle.Core.Logging.NullLogger.IsWarnEnabled"> + <summary> + No-op. + </summary> + <value>false</value> + </member> + <member name="P:Castle.Core.Logging.NullLogger.IsErrorEnabled"> + <summary> + No-op. + </summary> + <value>false</value> + </member> + <member name="P:Castle.Core.Logging.NullLogger.IsFatalEnabled"> + <summary> + No-op. + </summary> + <value>false</value> + </member> + <member name="P:Castle.Core.Logging.NullLogger.IsFatalErrorEnabled"> + <summary> + No-op. + </summary> + <value>false</value> + </member> + <member name="P:Castle.Core.Logging.NullLogger.GlobalProperties"> + <summary> + Returns empty context properties. + </summary> + </member> + <member name="P:Castle.Core.Logging.NullLogger.ThreadProperties"> + <summary> + Returns empty context properties. + </summary> + </member> + <member name="P:Castle.Core.Logging.NullLogger.ThreadStacks"> + <summary> + Returns empty context stacks. + </summary> + </member> + <member name="T:Castle.Core.Logging.StreamLogger"> + <summary> + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a <c>MemoryStream</c> for testing your components. + </summary> + <remarks> + This logger is not thread safe. + </remarks> + </member> + <member name="M:Castle.Core.Logging.StreamLogger.#ctor(System.String,System.IO.Stream)"> + <summary> + Creates a new <c>StreamLogger</c> with default encoding + and buffer size. Initial Level is set to Debug. + </summary> + <param name="name"> + The name of the log. + </param> + <param name="stream"> + The stream that will be used for logging, + seeking while the logger is alive + </param> + </member> + <member name="M:Castle.Core.Logging.StreamLogger.#ctor(System.String,System.IO.Stream,System.Text.Encoding)"> + <summary> + Creates a new <c>StreamLogger</c> with default buffer size. + Initial Level is set to Debug. + </summary> + <param name="name"> + The name of the log. + </param> + <param name="stream"> + The stream that will be used for logging, + seeking while the logger is alive + </param> + <param name="encoding"> + The encoding that will be used for this stream. + <see cref="T:System.IO.StreamWriter"/> + </param> + </member> + <member name="M:Castle.Core.Logging.StreamLogger.#ctor(System.String,System.IO.Stream,System.Text.Encoding,System.Int32)"> + <summary> + Creates a new <c>StreamLogger</c>. + Initial Level is set to Debug. + </summary> + <param name="name"> + The name of the log. + </param> + <param name="stream"> + The stream that will be used for logging, + seeking while the logger is alive + </param> + <param name="encoding"> + The encoding that will be used for this stream. + <see cref="T:System.IO.StreamWriter"/> + </param> + <param name="bufferSize"> + The buffer size that will be used for this stream. + <see cref="T:System.IO.StreamWriter"/> + </param> + </member> + <member name="M:Castle.Core.Logging.StreamLogger.#ctor(System.String,System.IO.StreamWriter)"> + <summary> + Creates a new <c>StreamLogger</c> with + Debug as default Level. + </summary> + <param name="name">The name of the log.</param> + <param name="writer">The <c>StreamWriter</c> the log will write to.</param> + </member> + <member name="T:Castle.Core.Logging.TraceLogger"> + <summary> + The TraceLogger sends all logging to the System.Diagnostics.TraceSource + built into the .net framework. + </summary> + <remarks> + Logging can be configured in the system.diagnostics configuration + section. + + If logger doesn't find a source name with a full match it will + use source names which match the namespace partially. For example you can + configure from all castle components by adding a source name with the + name "Castle". + + If no portion of the namespace matches the source named "Default" will + be used. + </remarks> + </member> + <member name="M:Castle.Core.Logging.TraceLogger.#ctor(System.String)"> + <summary> + Build a new trace logger based on the named TraceSource + </summary> + <param name="name">The name used to locate the best TraceSource. In most cases comes from the using type's fullname.</param> + </member> + <member name="M:Castle.Core.Logging.TraceLogger.#ctor(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Build a new trace logger based on the named TraceSource + </summary> + <param name="name">The name used to locate the best TraceSource. In most cases comes from the using type's fullname.</param> + <param name="level">The default logging level at which this source should write messages. In almost all cases this + default value will be overridden in the config file. </param> + </member> + <member name="M:Castle.Core.Logging.TraceLogger.CreateChildLogger(System.String)"> + <summary> + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + </summary> + <param name="loggerName">The Subname of this logger.</param> + <returns>The New ILogger instance.</returns> + </member> + <member name="T:Castle.Core.Logging.WebLogger"> + <summary> + The WebLogger sends everything to the HttpContext.Trace + </summary> + <remarks> + Trace must be enabled on the Asp.Net configuration file (web.config or machine.config) + </remarks> + </member> + <member name="M:Castle.Core.Logging.WebLogger.#ctor"> + <summary> + Creates a new WebLogger with the priority set to DEBUG. + </summary> + </member> + <member name="M:Castle.Core.Logging.WebLogger.#ctor(Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new WebLogger. + </summary> + <param name="logLevel">The Log level typecode.</param> + </member> + <member name="M:Castle.Core.Logging.WebLogger.#ctor(System.String)"> + <summary> + Creates a new WebLogger. + </summary> + <param name="name">The Log name.</param> + </member> + <member name="M:Castle.Core.Logging.WebLogger.#ctor(System.String,Castle.Core.Logging.LoggerLevel)"> + <summary> + Creates a new WebLogger. + </summary> + <param name="name">The Log name.</param> + <param name="loggerLevel">The Log level typecode.</param> + </member> + <member name="M:Castle.Core.Logging.WebLogger.Log(Castle.Core.Logging.LoggerLevel,System.String,System.String,System.Exception)"> + <summary> + A Common method to log. + </summary> + <param name="loggerLevel">The level of logging</param> + <param name="loggerName">The Log name.</param> + <param name="message">The Message</param> + <param name="exception">The Exception</param> + </member> + <member name="M:Castle.Core.Logging.WebLogger.CreateChildLogger(System.String)"> + <summary> + Just returns this logger (<c>WebLogger</c> is not hierarchical). + </summary> + <param name="loggerName">Ignored</param> + <returns>This ILogger instance.</returns> + </member> + <member name="M:Castle.Core.Logging.WebLogger.TryToGetTraceContext"> + <summary> + Tries to get the current http context's trace context. + </summary> + <returns>The current http context's trace context or null if none is + available</returns> + </member> + <member name="T:Castle.Core.Configuration.AbstractConfiguration"> + <summary> + This is an abstract <see cref="T:Castle.Core.Configuration.IConfiguration"/> implementation + that deals with methods that can be abstracted away + from underlying implementations. + </summary> + <remarks> + <para><b>AbstractConfiguration</b> makes easier to implementers + to create a new version of <see cref="T:Castle.Core.Configuration.IConfiguration"/></para> + </remarks> + </member> + <member name="T:Castle.Core.Configuration.IConfiguration"> + <summary> + <see cref="T:Castle.Core.Configuration.IConfiguration"/> is a interface encapsulating a configuration node + used to retrieve configuration values. + </summary> + </member> + <member name="M:Castle.Core.Configuration.IConfiguration.GetValue(System.Type,System.Object)"> + <summary> + Gets the value of the node and converts it + into specified <see cref="T:System.Type"/>. + </summary> + <param name="type">The <see cref="T:System.Type"/></param> + <param name="defaultValue"> + The Default value returned if the convertion fails. + </param> + <returns>The Value converted into the specified type.</returns> + </member> + <member name="P:Castle.Core.Configuration.IConfiguration.Name"> + <summary> + Gets the name of the node. + </summary> + <value> + The Name of the node. + </value> + </member> + <member name="P:Castle.Core.Configuration.IConfiguration.Value"> + <summary> + Gets the value of the node. + </summary> + <value> + The Value of the node. + </value> + </member> + <member name="P:Castle.Core.Configuration.IConfiguration.Children"> + <summary> + Gets an <see cref="T:Castle.Core.Configuration.ConfigurationCollection"/> of <see cref="T:Castle.Core.Configuration.IConfiguration"/> + elements containing all node children. + </summary> + <value>The Collection of child nodes.</value> + </member> + <member name="P:Castle.Core.Configuration.IConfiguration.Attributes"> + <summary> + Gets an <see cref="T:System.Collections.IDictionary"/> of the configuration attributes. + </summary> + </member> + <member name="M:Castle.Core.Configuration.AbstractConfiguration.GetValue(System.Type,System.Object)"> + <summary> + Gets the value of the node and converts it + into specified <see cref="T:System.Type"/>. + </summary> + <param name="type">The <see cref="T:System.Type"/></param> + <param name="defaultValue"> + The Default value returned if the convertion fails. + </param> + <returns>The Value converted into the specified type.</returns> + </member> + <member name="P:Castle.Core.Configuration.AbstractConfiguration.Name"> + <summary> + Gets the name of the <see cref="T:Castle.Core.Configuration.IConfiguration"/>. + </summary> + <value> + The Name of the <see cref="T:Castle.Core.Configuration.IConfiguration"/>. + </value> + </member> + <member name="P:Castle.Core.Configuration.AbstractConfiguration.Value"> + <summary> + Gets the value of <see cref="T:Castle.Core.Configuration.IConfiguration"/>. + </summary> + <value> + The Value of the <see cref="T:Castle.Core.Configuration.IConfiguration"/>. + </value> + </member> + <member name="P:Castle.Core.Configuration.AbstractConfiguration.Children"> + <summary> + Gets all child nodes. + </summary> + <value>The <see cref="T:Castle.Core.Configuration.ConfigurationCollection"/> of child nodes.</value> + </member> + <member name="P:Castle.Core.Configuration.AbstractConfiguration.Attributes"> + <summary> + Gets node attributes. + </summary> + <value> + All attributes of the node. + </value> + </member> + <member name="T:Castle.Core.Configuration.ConfigurationCollection"> + <summary> + A collection of <see cref="T:Castle.Core.Configuration.IConfiguration"/> objects. + </summary> + </member> + <member name="M:Castle.Core.Configuration.ConfigurationCollection.#ctor"> + <summary> + Creates a new instance of <c>ConfigurationCollection</c>. + </summary> + </member> + <member name="M:Castle.Core.Configuration.ConfigurationCollection.#ctor(System.Collections.Generic.IEnumerable{Castle.Core.Configuration.IConfiguration})"> + <summary> + Creates a new instance of <c>ConfigurationCollection</c>. + </summary> + </member> + <member name="T:Castle.Core.Configuration.MutableConfiguration"> + <summary> + Summary description for MutableConfiguration. + </summary> + </member> + <member name="M:Castle.Core.Configuration.MutableConfiguration.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Core.Configuration.MutableConfiguration"/> class. + </summary> + <param name="name">The name.</param> + </member> + <member name="P:Castle.Core.Configuration.MutableConfiguration.Value"> + <summary> + Gets the value of <see cref="T:Castle.Core.Configuration.IConfiguration"/>. + </summary> + <value> + The Value of the <see cref="T:Castle.Core.Configuration.IConfiguration"/>. + </value> + </member> + <member name="T:Castle.Core.Configuration.Xml.XmlConfigurationDeserializer"> + <summary> + Pendent + </summary> + </member> + <member name="M:Castle.Core.Configuration.Xml.XmlConfigurationDeserializer.Deserialize(System.Xml.XmlNode)"> + <summary> + Deserializes the specified node into an abstract representation of configuration. + </summary> + <param name="node">The node.</param> + <returns></returns> + </member> + <member name="M:Castle.Core.Configuration.Xml.XmlConfigurationDeserializer.GetConfigValue(System.String)"> + <summary> + If a config value is an empty string we return null, this is to keep + backward compability with old code + </summary> + </member> + <member name="T:Castle.Core.Pair`2"> + <summary> + General purpose class to represent a standard pair of values. + </summary> + <typeparam name="TFirst">Type of the first value</typeparam> + <typeparam name="TSecond">Type of the second value</typeparam> + </member> + <member name="M:Castle.Core.Pair`2.#ctor(`0,`1)"> + <summary> + Constructs a pair with its values + </summary> + <param name="first"></param> + <param name="second"></param> + </member> + <member name="T:Castle.Core.ProxyServices"> + <summary> + List of utility methods related to dynamic proxy operations + </summary> + </member> + <member name="M:Castle.Core.ProxyServices.IsDynamicProxy(System.Type)"> + <summary> + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + </summary> + <param name="type">The type.</param> + <returns> + <c>true</c> if it is a proxy; otherwise, <c>false</c>. + </returns> + </member> + <member name="T:Castle.Core.ReflectionBasedDictionaryAdapter"> + <summary> + Pendent + </summary> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Core.ReflectionBasedDictionaryAdapter"/> class. + </summary> + <param name="target">The target.</param> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.Contains(System.Object)"> + <summary> + Determines whether the <see cref="T:System.Collections.IDictionary"/> object contains an element with the specified key. + </summary> + <param name="key">The key to locate in the <see cref="T:System.Collections.IDictionary"/> object.</param> + <returns> + true if the <see cref="T:System.Collections.IDictionary"/> contains an element with the key; otherwise, false. + </returns> + <exception cref="T:System.ArgumentNullException"> + <paramref name="key"/> is null. </exception> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.Add(System.Object,System.Object)"> + <summary> + Adds an element with the provided key and value to the <see cref="T:System.Collections.IDictionary"/> object. + </summary> + <param name="key">The <see cref="T:System.Object"/> to use as the key of the element to add.</param> + <param name="value">The <see cref="T:System.Object"/> to use as the value of the element to add.</param> + <exception cref="T:System.ArgumentNullException"> + <paramref name="key"/> is null. </exception> + <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:System.Collections.IDictionary"/> object. </exception> + <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.IDictionary"/> is read-only.-or- The <see cref="T:System.Collections.IDictionary"/> has a fixed size. </exception> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.Clear"> + <summary> + Removes all elements from the <see cref="T:System.Collections.IDictionary"/> object. + </summary> + <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.IDictionary"/> object is read-only. </exception> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.System#Collections#IDictionary#GetEnumerator"> + <summary> + Returns an <see cref="T:System.Collections.IDictionaryEnumerator"/> object for the <see cref="T:System.Collections.IDictionary"/> object. + </summary> + <returns> + An <see cref="T:System.Collections.IDictionaryEnumerator"/> object for the <see cref="T:System.Collections.IDictionary"/> object. + </returns> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.Remove(System.Object)"> + <summary> + Removes the element with the specified key from the <see cref="T:System.Collections.IDictionary"/> object. + </summary> + <param name="key">The key of the element to remove.</param> + <exception cref="T:System.ArgumentNullException"> + <paramref name="key"/> is null. </exception> + <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.IDictionary"/> object is read-only.-or- The <see cref="T:System.Collections.IDictionary"/> has a fixed size. </exception> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.CopyTo(System.Array,System.Int32)"> + <summary> + Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index. + </summary> + <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.ICollection"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param> + <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param> + <exception cref="T:System.ArgumentNullException"> + <paramref name="array"/> is null. </exception> + <exception cref="T:System.ArgumentOutOfRangeException"> + <paramref name="index"/> is less than zero. </exception> + <exception cref="T:System.ArgumentException"> + <paramref name="array"/> is multidimensional.-or- <paramref name="index"/> is equal to or greater than the length of <paramref name="array"/>.-or- The number of elements in the source <see cref="T:System.Collections.ICollection"/> is greater than the available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>. </exception> + <exception cref="T:System.ArgumentException">The type of the source <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the destination <paramref name="array"/>. </exception> + </member> + <member name="M:Castle.Core.ReflectionBasedDictionaryAdapter.GetEnumerator"> + <summary> + Returns an enumerator that iterates through a collection. + </summary> + <returns> + An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection. + </returns> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.Item(System.Object)"> + <summary> + Gets or sets the <see cref="T:System.Object"/> with the specified key. + </summary> + <value></value> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.Keys"> + <summary> + Gets an <see cref="T:System.Collections.ICollection"/> object containing the keys of the <see cref="T:System.Collections.IDictionary"/> object. + </summary> + <value></value> + <returns>An <see cref="T:System.Collections.ICollection"/> object containing the keys of the <see cref="T:System.Collections.IDictionary"/> object.</returns> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.Values"> + <summary> + Gets an <see cref="T:System.Collections.ICollection"/> object containing the values in the <see cref="T:System.Collections.IDictionary"/> object. + </summary> + <value></value> + <returns>An <see cref="T:System.Collections.ICollection"/> object containing the values in the <see cref="T:System.Collections.IDictionary"/> object.</returns> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.IsReadOnly"> + <summary> + Gets a value indicating whether the <see cref="T:System.Collections.IDictionary"/> object is read-only. + </summary> + <value></value> + <returns>true if the <see cref="T:System.Collections.IDictionary"/> object is read-only; otherwise, false.</returns> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.IsFixedSize"> + <summary> + Gets a value indicating whether the <see cref="T:System.Collections.IDictionary"/> object has a fixed size. + </summary> + <value></value> + <returns>true if the <see cref="T:System.Collections.IDictionary"/> object has a fixed size; otherwise, false.</returns> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.Count"> + <summary> + Gets the number of elements contained in the <see cref="T:System.Collections.ICollection"/>. + </summary> + <value></value> + <returns>The number of elements contained in the <see cref="T:System.Collections.ICollection"/>.</returns> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.SyncRoot"> + <summary> + Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>. + </summary> + <value></value> + <returns>An object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection"/>.</returns> + </member> + <member name="P:Castle.Core.ReflectionBasedDictionaryAdapter.IsSynchronized"> + <summary> + Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread safe). + </summary> + <value></value> + <returns>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized (thread safe); otherwise, false.</returns> + </member> + <member name="T:Castle.Core.Resource.IResource"> + <summary> + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + </summary> + </member> + <member name="M:Castle.Core.Resource.IResource.GetStreamReader"> + <summary> + Returns a reader for the stream + </summary> + <remarks> + It's up to the caller to dispose the reader. + </remarks> + <returns></returns> + </member> + <member name="M:Castle.Core.Resource.IResource.GetStreamReader(System.Text.Encoding)"> + <summary> + Returns a reader for the stream + </summary> + <remarks> + It's up to the caller to dispose the reader. + </remarks> + <param name="encoding"></param> + <returns></returns> + </member> + <member name="M:Castle.Core.Resource.IResource.CreateRelative(System.String)"> + <summary> + Returns an instance of <see cref="T:Castle.Core.Resource.IResource"/> + created according to the <c>relativePath</c> + using itself as the root. + </summary> + <param name="relativePath"></param> + <returns></returns> + </member> + <member name="P:Castle.Core.Resource.IResource.FileBasePath"> + <summary> + + </summary> + <remarks> + Only valid for resources that + can be obtained through relative paths + </remarks> + </member> + <member name="T:Castle.Core.Resource.AbstractStreamResource"> + <summary> + + </summary> + </member> + <member name="F:Castle.Core.Resource.AbstractStreamResource.createStream"> + <summary> + This returns a new stream instance each time it is called. + It is the responsability of the caller to dispose of this stream + </summary> + </member> + <member name="T:Castle.Core.Resource.IResourceFactory"> + <summary> + Depicts the contract for resource factories. + </summary> + </member> + <member name="M:Castle.Core.Resource.IResourceFactory.Accept(Castle.Core.Resource.CustomUri)"> + <summary> + Used to check whether the resource factory + is able to deal with the given resource + identifier. + </summary> + <remarks> + Implementors should return <c>true</c> + only if the given identificator is supported + by the resource factory + </remarks> + <param name="uri"></param> + <returns></returns> + </member> + <member name="M:Castle.Core.Resource.IResourceFactory.Create(Castle.Core.Resource.CustomUri)"> + <summary> + Creates an <see cref="T:Castle.Core.Resource.IResource"/> instance + for the given resource identifier + </summary> + <param name="uri"></param> + <returns></returns> + </member> + <member name="M:Castle.Core.Resource.IResourceFactory.Create(Castle.Core.Resource.CustomUri,System.String)"> + <summary> + Creates an <see cref="T:Castle.Core.Resource.IResource"/> instance + for the given resource identifier + </summary> + <param name="uri"></param> + <param name="basePath"></param> + <returns></returns> + </member> + <member name="T:Castle.Core.Resource.FileResource"> + <summary> + + </summary> + </member> + <member name="T:Castle.Core.Resource.FileResourceFactory"> + <summary> + + </summary> + </member> + <member name="T:Castle.Core.Resource.StaticContentResource"> + <summary> + Adapts a static string content as an <see cref="T:Castle.Core.Resource.IResource"/> + </summary> + </member> + <member name="T:Castle.Core.Resource.UncResource"> + <summary> + Enable access to files on network shares + </summary> + </member> + <member name="T:Castle.Core.Smtp.IEmailSender"> + <summary> + Email sender abstraction. + </summary> + </member> + <member name="M:Castle.Core.Smtp.IEmailSender.Send(System.String,System.String,System.String,System.String)"> + <summary> + Sends a mail message. + </summary> + <param name="from">From field</param> + <param name="to">To field</param> + <param name="subject">E-mail's subject</param> + <param name="messageText">message's body</param> + </member> + <member name="M:Castle.Core.Smtp.IEmailSender.Send(System.Net.Mail.MailMessage)"> + <summary> + Sends a <see cref="T:System.Net.Mail.MailMessage">message</see>. + </summary> + <param name="message"><see cref="T:System.Net.Mail.MailMessage">Message</see> instance</param> + </member> + <member name="M:Castle.Core.Smtp.IEmailSender.Send(System.Collections.Generic.IEnumerable{System.Net.Mail.MailMessage})"> + <summary> + Sends multiple <see cref="T:System.Net.Mail.MailMessage">messages</see>. + </summary> + <param name="messages">List of <see cref="T:System.Net.Mail.MailMessage">messages</see></param> + </member> + <member name="T:Castle.Core.Smtp.DefaultSmtpSender"> + <summary> + Default <see cref="T:Castle.Core.Smtp.IEmailSender"/> implementation. + </summary> + </member> + <member name="M:Castle.Core.Smtp.DefaultSmtpSender.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:Castle.Core.Smtp.DefaultSmtpSender"/> class based on the <see cref="T:System.Net.Mail.SmtpClient"/> configuration provided in the application configuration file. + </summary> + <remarks> + This constructor is based on the default <see cref="T:System.Net.Mail.SmtpClient"/> configuration in the application configuration file. + </remarks> + </member> + <member name="M:Castle.Core.Smtp.DefaultSmtpSender.#ctor(System.String)"> + <summary> + This service implementation + requires a host name in order to work + </summary> + <param name="hostname">The smtp server name</param> + </member> + <member name="M:Castle.Core.Smtp.DefaultSmtpSender.Send(System.String,System.String,System.String,System.String)"> + <summary> + Sends a message. + </summary> + <exception cref="T:System.ArgumentNullException">If any of the parameters is null</exception> + <param name="from">From field</param> + <param name="to">To field</param> + <param name="subject">e-mail's subject</param> + <param name="messageText">message's body</param> + </member> + <member name="M:Castle.Core.Smtp.DefaultSmtpSender.Send(System.Net.Mail.MailMessage)"> + <summary> + Sends a message. + </summary> + <exception cref="T:System.ArgumentNullException">If the message is null</exception> + <param name="message">Message instance</param> + </member> + <member name="M:Castle.Core.Smtp.DefaultSmtpSender.Configure(System.Net.Mail.SmtpClient)"> + <summary> + Configures the sender + with port information and eventual credential + informed + </summary> + <param name="smtpClient">Message instance</param> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Port"> + <summary> + Gets or sets the port used to + access the SMTP server + </summary> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Hostname"> + <summary> + Gets the hostname. + </summary> + <value>The hostname.</value> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.AsyncSend"> + <summary> + Gets or sets a value which is used to + configure if emails are going to be sent asyncrhonously or not. + </summary> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Timeout"> + <summary> + Gets or sets a value that specifies + the amount of time after which a synchronous Send call times out. + </summary> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.UseSsl"> + <summary> + Gets or sets a value indicating whether the email should be sent using + a secure communication channel. + </summary> + <value><c>true</c> if should use SSL; otherwise, <c>false</c>.</value> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Domain"> + <summary> + Gets or sets the domain. + </summary> + <value>The domain.</value> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.UserName"> + <summary> + Gets or sets the name of the user. + </summary> + <value>The name of the user.</value> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Password"> + <summary> + Gets or sets the password. + </summary> + <value>The password.</value> + </member> + <member name="P:Castle.Core.Smtp.DefaultSmtpSender.HasCredentials"> + <summary> + Gets a value indicating whether credentials were informed. + </summary> + <value> + <see langword="true"/> if this instance has credentials; otherwise, <see langword="false"/>. + </value> + </member> + </members> +</doc> diff --git a/NzbDrone.Core/Model/EpisodeModel.cs b/NzbDrone.Core/Model/EpisodeModel.cs new file mode 100644 index 000000000..7656d89cb --- /dev/null +++ b/NzbDrone.Core/Model/EpisodeModel.cs @@ -0,0 +1,16 @@ +using NzbDrone.Core.Repository.Quality; +using SubSonic.SqlGeneration.Schema; + +namespace NzbDrone.Core.Model +{ + public class EpisodeModel + { + public string SeriesTitle { get; set; } + public int SeasonNumber { get; set; } + public int EpisodeNumber { get; set; } + public QualityTypes Quality { get; set; } + public string Path { get; set; } + public long Size { get; set; } + public bool Proper { get; set; } + } +} \ No newline at end of file diff --git a/NzbDrone.Core/Model/EpisodeParseResult.cs b/NzbDrone.Core/Model/EpisodeParseResult.cs new file mode 100644 index 000000000..d280f539b --- /dev/null +++ b/NzbDrone.Core/Model/EpisodeParseResult.cs @@ -0,0 +1,12 @@ +using NzbDrone.Core.Repository.Quality; +using SubSonic.SqlGeneration.Schema; + +namespace NzbDrone.Core.Model +{ + internal struct EpisodeParseResult + { + internal string SeriesTitle { get; set; } + internal int SeasonNumber { get; set; } + internal int EpisodeNumber { get; set; } + } +} \ No newline at end of file diff --git a/NzbDrone.Core/Entities/Notification/BasicNotification.cs b/NzbDrone.Core/Model/Notification/BasicNotification.cs similarity index 86% rename from NzbDrone.Core/Entities/Notification/BasicNotification.cs rename to NzbDrone.Core/Model/Notification/BasicNotification.cs index ce256c7e8..3291763c9 100644 --- a/NzbDrone.Core/Entities/Notification/BasicNotification.cs +++ b/NzbDrone.Core/Model/Notification/BasicNotification.cs @@ -1,6 +1,6 @@ using System; -namespace NzbDrone.Core.Entities.Notification +namespace NzbDrone.Core.Model.Notification { public class BasicNotification { @@ -17,7 +17,7 @@ namespace NzbDrone.Core.Entities.Notification public String Title { get; set; } - public NotificationType Type { get; set; } + public BasicNotificationType Type { get; set; } /// <summary> /// Gets or sets a value indicating whether or not this message should be automatically dismissed after a period of time. diff --git a/NzbDrone.Core/Model/Notification/BasicNotificationType.cs b/NzbDrone.Core/Model/Notification/BasicNotificationType.cs new file mode 100644 index 000000000..d06d37907 --- /dev/null +++ b/NzbDrone.Core/Model/Notification/BasicNotificationType.cs @@ -0,0 +1,9 @@ +namespace NzbDrone.Core.Model.Notification +{ + public enum BasicNotificationType + { + Info = 0, + Warrning = 1, + Error = 2 + } +} \ No newline at end of file diff --git a/NzbDrone.Core/Entities/Notification/ProgressNotification.cs b/NzbDrone.Core/Model/Notification/ProgressNotification.cs similarity index 82% rename from NzbDrone.Core/Entities/Notification/ProgressNotification.cs rename to NzbDrone.Core/Model/Notification/ProgressNotification.cs index 68185c062..a25ce3946 100644 --- a/NzbDrone.Core/Entities/Notification/ProgressNotification.cs +++ b/NzbDrone.Core/Model/Notification/ProgressNotification.cs @@ -1,7 +1,7 @@ using System; using NLog; -namespace NzbDrone.Core.Entities.Notification +namespace NzbDrone.Core.Model.Notification { public class ProgressNotification : IDisposable { @@ -63,14 +63,14 @@ namespace NzbDrone.Core.Entities.Notification /// Gets or sets the status. /// </summary> /// <value>The status.</value> - public NotificationStatus Status { get; set; } + public ProgressNotificationStatus Status { get; set; } public void Dispose() { - if (Status == NotificationStatus.InProgress) + if (Status == ProgressNotificationStatus.InProgress) { - Logger.Error("Progress notification '{0}' was unexpectedly abandoned. ID:{1} Status:{2} CurrentStatus:{3} PercentComplete:{4}", Title, Id, Status, CurrentStatus, PercentComplete); - Status = NotificationStatus.Failed; + Logger.Warn("Progress notification '{0}' was unexpectedly abandoned. ID:{1} Status:{2} CurrentStatus:{3} PercentComplete:{4}", Title, Id, Status, CurrentStatus, PercentComplete); + Status = ProgressNotificationStatus.Failed; } } } diff --git a/NzbDrone.Core/Model/Notification/ProgressNotificationStatus.cs b/NzbDrone.Core/Model/Notification/ProgressNotificationStatus.cs new file mode 100644 index 000000000..b79707b34 --- /dev/null +++ b/NzbDrone.Core/Model/Notification/ProgressNotificationStatus.cs @@ -0,0 +1,9 @@ +namespace NzbDrone.Core.Model.Notification +{ + public enum ProgressNotificationStatus + { + InProgress = 0, + Completed = 1, + Failed = 2 + } +} \ No newline at end of file diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj index e36678b54..bdfb08d1e 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/NzbDrone.Core/NzbDrone.Core.csproj @@ -121,6 +121,7 @@ <StartupObject /> </PropertyGroup> <ItemGroup> + <Reference Include="Castle.Core, Version=2.5.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL" /> <Reference Include="Exceptioneer.WindowsFormsClient, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>Libraries\Exceptioneer.WindowsFormsClient.dll</HintPath> @@ -149,20 +150,25 @@ <Reference Include="UPnP, Version=1.0.3932.37442, Culture=neutral, processorArchitecture=MSIL" /> </ItemGroup> <ItemGroup> - <Compile Include="Entities\MediaFile.cs" /> - <Compile Include="Entities\Notification\BasicNotification.cs" /> - <Compile Include="Entities\Notification\NotificationStatus.cs" /> - <Compile Include="Entities\Notification\NotificationType.cs" /> + <Compile Include="Model\EpisodeParseResult.cs" /> + <Compile Include="Model\EpisodeModel.cs" /> + <Compile Include="Repository\EpisodeFile.cs" /> + <Compile Include="Model\Notification\BasicNotification.cs" /> + <Compile Include="Model\Notification\ProgressNotificationStatus.cs" /> + <Compile Include="Model\Notification\BasicNotificationType.cs" /> <Compile Include="Instrumentation.cs" /> + <Compile Include="Parser.cs" /> <Compile Include="Providers\Fakes\FakeNotificationProvider.cs" /> + <Compile Include="Providers\IMediaFileProvider.cs" /> <Compile Include="Providers\INotificationProvider.cs" /> <Compile Include="Providers\IMediaDiscoveryProvider.cs" /> <Compile Include="Providers\IMediaProvider.cs" /> <Compile Include="Providers\ISyncProvider.cs" /> <Compile Include="Providers\MediaDiscoveryProvider.cs" /> + <Compile Include="Providers\MediaFileProvider.cs" /> <Compile Include="Providers\SyncProvider.cs" /> <Compile Include="Providers\XBMCMediaProvider.cs" /> - <Compile Include="Entities\Notification\ProgressNotification.cs" /> + <Compile Include="Model\Notification\ProgressNotification.cs" /> <Compile Include="Providers\NotificationProvider.cs" /> <Compile Include="Providers\ConfigProvider.cs" /> <Compile Include="Providers\EpisodeProvider.cs" /> @@ -175,15 +181,13 @@ <Compile Include="Providers\ITvDbProvider.cs" /> <Compile Include="Providers\SabProvider.cs" /> <Compile Include="Providers\SeasonProvider.cs" /> - <Compile Include="Entities\Episode\RemoteEpisode.cs" /> - <Compile Include="Entities\Episode\EpisodeInfo.cs" /> - <Compile Include="Entities\Quality\AllowedQuality.cs" /> - <Compile Include="Entities\Config.cs" /> - <Compile Include="Entities\Quality\QualityProfile.cs" /> - <Compile Include="Entities\Season.cs" /> - <Compile Include="Entities\Episode\BasicEpisode.cs" /> - <Compile Include="Entities\Quality\QualityTypes.cs" /> - <Compile Include="Entities\Series.cs" /> + <Compile Include="Repository\Episode.cs" /> + <Compile Include="Repository\Quality\AllowedQuality.cs" /> + <Compile Include="Repository\Config.cs" /> + <Compile Include="Repository\Quality\QualityProfile.cs" /> + <Compile Include="Repository\Season.cs" /> + <Compile Include="Repository\Quality\QualityTypes.cs" /> + <Compile Include="Repository\Series.cs" /> <Compile Include="CentralDispatch.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Providers\DiskProvider.cs" /> @@ -215,6 +219,9 @@ </BootstrapperPackage> </ItemGroup> <ItemGroup> + <Content Include="Libraries\Castle.Core.dll" /> + <Content Include="Libraries\Castle.Core.pdb" /> + <Content Include="Libraries\Castle.Core.xml" /> <Content Include="Libraries\Exceptioneer.WindowsFormsClient.dll" /> <Content Include="Libraries\Ninject.dll" /> <Content Include="Libraries\Ninject.xml" /> diff --git a/NzbDrone.Core/Parser.cs b/NzbDrone.Core/Parser.cs new file mode 100644 index 000000000..65e4022d1 --- /dev/null +++ b/NzbDrone.Core/Parser.cs @@ -0,0 +1,135 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using NLog; +using NzbDrone.Core.Model; +using NzbDrone.Core.Providers; +using NzbDrone.Core.Repository.Quality; + +namespace NzbDrone.Core +{ + internal static class Parser + { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private static readonly Regex[] ReportTitleRegex = new[] + { + new Regex(@"(?<title>.+?)?\W(S)?(?<season>\d+)\w(?<episode>\d+)\W", RegexOptions.IgnoreCase | RegexOptions.Compiled) + }; + + private static readonly Regex NormalizeRegex = new Regex(@"((\s|^)the(\s|$))|((\s|^)and(\s|$))|[^a-z]", RegexOptions.IgnoreCase | RegexOptions.Compiled); + + /// <summary> + /// Parses a post title into list of episodes it contains + /// </summary> + /// <param name="title">Title of the report</param> + /// <returns>List of episodes contained to the post</returns> + internal static List<EpisodeParseResult> ParseEpisodeInfo(string title) + { + Logger.Trace("Parsing string '{0}'", title); + + var result = new List<EpisodeParseResult>(); + + foreach (var regex in ReportTitleRegex) + { + var match = regex.Matches(title); + + if (match.Count != 0) + { + var seriesName = NormalizeTitle(match[0].Groups["title"].Value); + + foreach (Match matchGroup in match) + { + var tuple = new EpisodeParseResult + { + SeriesTitle = seriesName, + SeasonNumber = Convert.ToInt32(matchGroup.Groups["season"].Value), + EpisodeNumber = Convert.ToInt32(matchGroup.Groups["episode"].Value) + }; + + result.Add(tuple); + + Logger.Trace("Episode Parsed. {0}", tuple); + } + } + } + + Logger.Trace("{0} episodes parsed from string.", result.Count); + + return result; + } + + /// <summary> + /// Parses proper status out of a report title + /// </summary> + /// <param name="title">Title of the report</param> + /// <returns></returns> + internal static bool ParseProper(string title) + { + return title.ToLower().Contains("proper"); + } + + internal static QualityTypes ParseQuality(string name) + { + Logger.Trace("Trying to parse quality for {0}", name); + + var result = QualityTypes.Unknown; + name = name.ToLowerInvariant(); + + if (name.Contains("dvd")) + return QualityTypes.DVD; + if (name.Contains("xvid") || name.Contains("divx")) + { + if (name.Contains("bluray") || name.Contains("bdrip")) + { + return QualityTypes.DVD; + } + return QualityTypes.TV; + } + + if (name.Contains("bluray") || name.Contains("bdrip")) + return QualityTypes.Bluray; + if (name.Contains("web-dl")) + return QualityTypes.WEBDL; + if (name.Contains("x264") || name.Contains("h264") || name.Contains("720p")) + return QualityTypes.HDTV; + + //Based on extension + if (result == QualityTypes.Unknown) + { + switch (new FileInfo(name).Extension.ToLower()) + { + case ".avi": + case ".xvid": + case ".wmv": + { + result = QualityTypes.TV; + break; + } + case ".mkv": + { + result = QualityTypes.HDTV; + break; + } + } + } + + Logger.Trace("Quality Parsed:{0} Title:", result, name); + return result; + } + + /// <summary> + /// Normalizes the title. removing all non-word characters as well as common tokens + /// such as 'the' and 'and' + /// </summary> + /// <param name="title">title</param> + /// <returns></returns> + internal static string NormalizeTitle(string title) + { + return NormalizeRegex.Replace(title, String.Empty).ToLower(); + } + } +} diff --git a/NzbDrone.Core/Properties/AssemblyInfo.cs b/NzbDrone.Core/Properties/AssemblyInfo.cs index ea01fbf9d..d6e8b0bfe 100644 --- a/NzbDrone.Core/Properties/AssemblyInfo.cs +++ b/NzbDrone.Core/Properties/AssemblyInfo.cs @@ -13,6 +13,7 @@ // * // */ using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -49,4 +50,5 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.0.*")] \ No newline at end of file +[assembly: AssemblyVersion("0.2.0.*")] +[assembly: InternalsVisibleTo("NzbDrone.Core.Test")] \ No newline at end of file diff --git a/NzbDrone.Core/Providers/ConfigProvider.cs b/NzbDrone.Core/Providers/ConfigProvider.cs index d6e7531e9..748cc06f2 100644 --- a/NzbDrone.Core/Providers/ConfigProvider.cs +++ b/NzbDrone.Core/Providers/ConfigProvider.cs @@ -1,6 +1,6 @@ using System; using NLog; -using NzbDrone.Core.Entities; +using NzbDrone.Core.Repository; using SubSonic.Repository; namespace NzbDrone.Core.Providers diff --git a/NzbDrone.Core/Providers/DiskProvider.cs b/NzbDrone.Core/Providers/DiskProvider.cs index b4062b1f0..29a2b0d57 100644 --- a/NzbDrone.Core/Providers/DiskProvider.cs +++ b/NzbDrone.Core/Providers/DiskProvider.cs @@ -17,6 +17,11 @@ namespace NzbDrone.Core.Providers return Directory.GetDirectories(path); } + public string[] GetFiles(string path, string pattern, SearchOption searchOption) + { + return Directory.GetFiles(path, pattern, searchOption); + } + public String CreateDirectory(string path) { return Directory.CreateDirectory(path).FullName; diff --git a/NzbDrone.Core/Providers/EpisodeProvider.cs b/NzbDrone.Core/Providers/EpisodeProvider.cs index 5724f2a78..67031e04b 100644 --- a/NzbDrone.Core/Providers/EpisodeProvider.cs +++ b/NzbDrone.Core/Providers/EpisodeProvider.cs @@ -3,8 +3,8 @@ using System.Linq; using System.Collections.Generic; using System.Text.RegularExpressions; using NLog; -using NzbDrone.Core.Entities.Episode; -using NzbDrone.Core.Entities.Quality; +using NzbDrone.Core.Model; +using NzbDrone.Core.Repository; using SubSonic.Repository; namespace NzbDrone.Core.Providers @@ -12,21 +12,6 @@ namespace NzbDrone.Core.Providers public class EpisodeProvider : IEpisodeProvider { //TODO: Remove parsing of the series name, it should be done in series provider - private static readonly Regex ParseRegex = new Regex(@"(?<showName>.*) -(?: - s(?<seasonNumber>\d+)e(?<episodeNumber>\d+)-?e(?<episodeNumber2>\d+) -| s(?<seasonNumber>\d+)e(?<episodeNumber>\d+) -| (?<seasonNumber>\d+)x(?<episodeNumber>\d+) -| (?<airDate>\d{4}.\d{2}.\d{2}) -) -(?: - (?<episodeName>.*?) - (?<release> - (?:hdtv|pdtv|xvid|ws|720p|x264|bdrip|dvdrip|dsr|proper) - .*) -| (?<episodeName>.*) -)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace); - private readonly IRepository _sonicRepo; private readonly ISeriesProvider _series; @@ -43,35 +28,17 @@ namespace NzbDrone.Core.Providers _seasons = seasonProvider; } - public EpisodeInfo GetEpisode(long id) + public Episode GetEpisode(long id) { - return _sonicRepo.Single<EpisodeInfo>(e => e.EpisodeId == id); + return _sonicRepo.Single<Episode>(e => e.EpisodeId == id); } - public void UpdateEpisode(EpisodeInfo episode) + public IList<Episode> GetEpisodeBySeries(long seriesId) { - var episodeToUpdate = _sonicRepo.Single<EpisodeInfo>(e => e.EpisodeId == episode.EpisodeId); - - episodeToUpdate.AirDate = episode.AirDate; - episodeToUpdate.Overview = episode.Overview; - episodeToUpdate.Title = episode.Title; - episodeToUpdate.EpisodeNumber = episode.EpisodeNumber; - episodeToUpdate.SeasonNumber = episode.SeasonNumber; - - _sonicRepo.Update<EpisodeInfo>(episodeToUpdate); + return _sonicRepo.Find<Episode>(e => e.SeriesId == seriesId); } - public IList<EpisodeInfo> GetEpisodesBySeason(long seasonId) - { - return _sonicRepo.Find<EpisodeInfo>(e => e.SeasonId == seasonId); - } - - public IList<EpisodeInfo> GetEpisodeBySeries(long seriesId) - { - return _sonicRepo.Find<EpisodeInfo>(e => e.SeriesId == seriesId); - } - - public String GetSabTitle(BasicEpisode episode) + public String GetSabTitle(Episode episode) { var series = _series.GetSeries(episode.SeriesId); if (series == null) throw new ArgumentException("Unknown series. ID: " + episode.SeriesId); @@ -85,7 +52,7 @@ namespace NzbDrone.Core.Providers /// </summary> /// <param name="episode">Episode that needs to be checked</param> /// <returns></returns> - public bool IsNeeded(RemoteEpisode episode) + public bool IsNeeded(EpisodeModel episode) { throw new NotImplementedException(); } @@ -97,8 +64,8 @@ namespace NzbDrone.Core.Providers int failCount = 0; var targetSeries = _tvDb.GetSeries(seriesId, true); - var updateList = new List<EpisodeInfo>(); - var newList = new List<EpisodeInfo>(); + var updateList = new List<Episode>(); + var newList = new List<Episode>(); Logger.Debug("Updating season info for series:{0}", seriesId); targetSeries.Episodes.Select(e => new { e.SeasonId, e.SeasonNumber }) @@ -110,7 +77,7 @@ namespace NzbDrone.Core.Providers try { Logger.Debug("Updating info for series:{0} - episode:{1}", seriesId, episode.Id); - var newEpisode = new EpisodeInfo() + var newEpisode = new Episode() { AirDate = episode.FirstAired, EpisodeId = episode.Id, @@ -123,7 +90,7 @@ namespace NzbDrone.Core.Providers Title = episode.EpisodeName }; - if (_sonicRepo.Exists<EpisodeInfo>(e => e.EpisodeId == newEpisode.EpisodeId)) + if (_sonicRepo.Exists<Episode>(e => e.EpisodeId == newEpisode.EpisodeId)) { updateList.Add(newEpisode); } @@ -146,38 +113,5 @@ namespace NzbDrone.Core.Providers Logger.Info("Finished episode refresh for series:{0}. Success:{1} - Fail:{2} ", seriesId, successCount, failCount); } - - - - /// <summary> - /// Parses a post title into list of episode objects - /// </summary> - /// <param name="title">Title of the report</param> - /// <returns>List of episodes relating to the post</returns> - public static List<RemoteEpisode> Parse(string title) - { - var match = ParseRegex.Match(title); - - if (!match.Success) - throw new ArgumentException(String.Format("Title doesn't match any know patterns. [{0}]", title)); - - var result = new List<RemoteEpisode>(); - - result.Add(new RemoteEpisode { EpisodeNumber = Convert.ToInt32(match.Groups["episodeNumber"].Value) }); - - if (match.Groups["episodeNumber2"].Success) - { - result.Add(new RemoteEpisode { EpisodeNumber = Convert.ToInt32(match.Groups["episodeNumber2"].Value) }); - } - - foreach (var ep in result) - { - ep.SeasonNumber = Convert.ToInt32(match.Groups["seasonNumber"].Value); - ep.Proper = title.Contains("PROPER"); - ep.Quality = QualityTypes.Unknown; - } - - return result; - } } } \ No newline at end of file diff --git a/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs b/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs index fe0a4a461..f51e7d6fd 100644 --- a/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs +++ b/NzbDrone.Core/Providers/Fakes/FakeNotificationProvider.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using NzbDrone.Core.Entities.Notification; +using NzbDrone.Core.Model.Notification; namespace NzbDrone.Core.Providers.Fakes { @@ -33,8 +33,8 @@ namespace NzbDrone.Core.Providers.Fakes get { - fakeNotification.Status = NotificationStatus.InProgress; - fakeNotification.Status = NotificationStatus.InProgress; + fakeNotification.Status = ProgressNotificationStatus.InProgress; + fakeNotification.Status = ProgressNotificationStatus.InProgress; fakeNotification2.CurrentStatus = DateTime.UtcNow.ToString(); fakeNotification.CurrentStatus = DateTime.Now.ToString(); return new List<ProgressNotification> { fakeNotification }; diff --git a/NzbDrone.Core/Providers/IDiskProvider.cs b/NzbDrone.Core/Providers/IDiskProvider.cs index ec7a0a9e0..6a2643c84 100644 --- a/NzbDrone.Core/Providers/IDiskProvider.cs +++ b/NzbDrone.Core/Providers/IDiskProvider.cs @@ -1,4 +1,5 @@ using System; +using System.IO; namespace NzbDrone.Core.Providers { @@ -7,5 +8,6 @@ namespace NzbDrone.Core.Providers bool Exists(string path); string[] GetDirectories(string path); String CreateDirectory(string path); + string[] GetFiles(string path, string pattern, SearchOption searchOption); } } \ No newline at end of file diff --git a/NzbDrone.Core/Providers/IEpisodeProvider.cs b/NzbDrone.Core/Providers/IEpisodeProvider.cs index 3c4addc88..df444ee75 100644 --- a/NzbDrone.Core/Providers/IEpisodeProvider.cs +++ b/NzbDrone.Core/Providers/IEpisodeProvider.cs @@ -1,23 +1,22 @@ using System; using System.Collections.Generic; -using NzbDrone.Core.Entities.Episode; +using NzbDrone.Core.Model; +using NzbDrone.Core.Repository; namespace NzbDrone.Core.Providers { public interface IEpisodeProvider { - EpisodeInfo GetEpisode(long id); - void UpdateEpisode(EpisodeInfo episode); - IList<EpisodeInfo> GetEpisodesBySeason(long seasonId); - IList<EpisodeInfo> GetEpisodeBySeries(long seriesId); - String GetSabTitle(BasicEpisode episode); + Episode GetEpisode(long id); + IList<Episode> GetEpisodeBySeries(long seriesId); + String GetSabTitle(Episode episode); /// <summary> /// Comprehensive check on whether or not this episode is needed. /// </summary> /// <param name="episode">Episode that needs to be checked</param> /// <returns></returns> - bool IsNeeded(RemoteEpisode episode); + bool IsNeeded(EpisodeModel episode); void RefreshEpisodeInfo(int seriesId); } diff --git a/NzbDrone.Core/Providers/IMediaFileProvider.cs b/NzbDrone.Core/Providers/IMediaFileProvider.cs new file mode 100644 index 000000000..41f1e4b59 --- /dev/null +++ b/NzbDrone.Core/Providers/IMediaFileProvider.cs @@ -0,0 +1,13 @@ +using NzbDrone.Core.Repository; + +namespace NzbDrone.Core.Providers +{ + public interface IMediaFileProvider + { + /// <summary> + /// Scans the specified series folder for media files + /// </summary> + /// <param name="series">The series to be scanned</param> + void Scan(Series series); + } +} \ No newline at end of file diff --git a/NzbDrone.Core/Providers/INotificationProvider.cs b/NzbDrone.Core/Providers/INotificationProvider.cs index e7680f1ff..d4b4c8c12 100644 --- a/NzbDrone.Core/Providers/INotificationProvider.cs +++ b/NzbDrone.Core/Providers/INotificationProvider.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using NzbDrone.Core.Entities.Notification; +using NzbDrone.Core.Model.Notification; namespace NzbDrone.Core.Providers { diff --git a/NzbDrone.Core/Providers/ISeasonProvider.cs b/NzbDrone.Core/Providers/ISeasonProvider.cs index 354de4426..3a8f79854 100644 --- a/NzbDrone.Core/Providers/ISeasonProvider.cs +++ b/NzbDrone.Core/Providers/ISeasonProvider.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using NzbDrone.Core.Entities; +using NzbDrone.Core.Repository; namespace NzbDrone.Core.Providers { diff --git a/NzbDrone.Core/Providers/ISeriesProvider.cs b/NzbDrone.Core/Providers/ISeriesProvider.cs index 4c464abd6..53310ff75 100644 --- a/NzbDrone.Core/Providers/ISeriesProvider.cs +++ b/NzbDrone.Core/Providers/ISeriesProvider.cs @@ -1,7 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; -using NzbDrone.Core.Entities; +using NzbDrone.Core.Repository; +using NzbDrone.Core.Repository; using TvdbLib.Data; namespace NzbDrone.Core.Providers diff --git a/NzbDrone.Core/Providers/MediaFileProvider.cs b/NzbDrone.Core/Providers/MediaFileProvider.cs new file mode 100644 index 000000000..ffdd2b0ce --- /dev/null +++ b/NzbDrone.Core/Providers/MediaFileProvider.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using NLog; +using NzbDrone.Core.Repository; + +namespace NzbDrone.Core.Providers +{ + public class MediaFileProvider : IMediaFileProvider + { + + + private readonly IDiskProvider _diskProvider; + private readonly IEpisodeProvider _episodeProvider; + + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private static readonly string[] MediaExtentions = new[] { "*.mkv", "*.avi", "*.wmv" }; + + public MediaFileProvider(IDiskProvider diskProvider, IEpisodeProvider episodeProvider) + { + _diskProvider = diskProvider; + _episodeProvider = episodeProvider; + } + + /// <summary> + /// Scans the specified series folder for media files + /// </summary> + /// <param name="series">The series to be scanned</param> + public void Scan(Series series) + { + var mediaFileList = new List<string>(); + Logger.Info("Scanning '{0}'", series.Path); + foreach (var ext in MediaExtentions) + { + mediaFileList.AddRange(_diskProvider.GetFiles(series.Path, ext, SearchOption.AllDirectories)); + } + + Logger.Info("{0} media files were found", mediaFileList.Count); + + foreach (var file in mediaFileList) + { + var episode = Parser.ParseEpisodeInfo(file); + } + } + } +} diff --git a/NzbDrone.Core/Providers/NotificationProvider.cs b/NzbDrone.Core/Providers/NotificationProvider.cs index a6e714a94..631430db3 100644 --- a/NzbDrone.Core/Providers/NotificationProvider.cs +++ b/NzbDrone.Core/Providers/NotificationProvider.cs @@ -1,7 +1,7 @@ using System; using System.Linq; using System.Collections.Generic; -using NzbDrone.Core.Entities.Notification; +using NzbDrone.Core.Model.Notification; namespace NzbDrone.Core.Providers { @@ -28,7 +28,7 @@ namespace NzbDrone.Core.Providers public List<ProgressNotification> GetProgressNotifications { - get { return new List<ProgressNotification>(_progressNotification.Values.Where(p => p.Status == NotificationStatus.InProgress)); } + get { return new List<ProgressNotification>(_progressNotification.Values.Where(p => p.Status == ProgressNotificationStatus.InProgress)); } } public void Dismiss(Guid notificationId) diff --git a/NzbDrone.Core/Providers/SeasonProvider.cs b/NzbDrone.Core/Providers/SeasonProvider.cs index fc04cf436..bb97862c8 100644 --- a/NzbDrone.Core/Providers/SeasonProvider.cs +++ b/NzbDrone.Core/Providers/SeasonProvider.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using NLog; -using NzbDrone.Core.Entities; +using NzbDrone.Core.Repository; using SubSonic.Repository; namespace NzbDrone.Core.Providers diff --git a/NzbDrone.Core/Providers/SeriesProvider.cs b/NzbDrone.Core/Providers/SeriesProvider.cs index 5b5661fb2..0e1906f3b 100644 --- a/NzbDrone.Core/Providers/SeriesProvider.cs +++ b/NzbDrone.Core/Providers/SeriesProvider.cs @@ -4,8 +4,7 @@ using System.IO; using System.Linq; using System.Text.RegularExpressions; using NLog; -using NzbDrone.Core.Entities; -using NzbDrone.Core.Entities.Notification; +using NzbDrone.Core.Repository; using SubSonic.Repository; using TvdbLib.Data; @@ -16,30 +15,12 @@ namespace NzbDrone.Core.Providers //TODO: Remove parsing of rest of tv show info we just need the show name //Trims all white spaces and separators from the end of the title. - private static readonly Regex CleanTitleRegex = new Regex(@"[\s.][^a-z]*$", RegexOptions.IgnoreCase | RegexOptions.Compiled); - private static readonly Regex ParseRegex = new Regex(@"(?<showName>.*) -(?: - s(?<seasonNumber>\d+)e(?<episodeNumber>\d+)-?e(?<episodeNumber2>\d+) -| s(?<seasonNumber>\d+)e(?<episodeNumber>\d+) -| (?<seasonNumber>\d+)x(?<episodeNumber>\d+) -| (?<airDate>\d{4}.\d{2}.\d{2}) -) -(?: - (?<episodeName>.*?) - (?<release> - (?:hdtv|pdtv|xvid|ws|720p|x264|bdrip|dvdrip|dsr|proper) - .*) -| (?<episodeName>.*) -)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace); - - private readonly IConfigProvider _config; private readonly IDiskProvider _diskProvider; private readonly IRepository _sonioRepo; private readonly ITvDbProvider _tvDb; private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - private static readonly Regex CleanUpRegex = new Regex(@"((\s|^)the(\s|$))|((\s|^)and(\s|$))|[^a-z]", RegexOptions.IgnoreCase | RegexOptions.Compiled); public SeriesProvider(IDiskProvider diskProvider, IConfigProvider configProvider, IRepository dataRepository, ITvDbProvider tvDbProvider) { @@ -71,21 +52,6 @@ namespace NzbDrone.Core.Providers return _sonioRepo.Exists<Series>(c => c.SeriesId == id && c.Monitored); } - /// <summary> - /// Parses series name out of a post title - /// </summary> - /// <param name="postTitle">Title of the report</param> - /// <returns>Name series this report belongs to</returns> - public static string ParseTitle(string postTitle) - { - var match = ParseRegex.Match(postTitle); - - if (!match.Success) - throw new ArgumentException(String.Format("Title doesn't match any know patterns. [{0}]", postTitle)); - - return CleanTitleRegex.Replace(match.Groups["showName"].Value, String.Empty).Replace(".", " "); - } - public List<String> GetUnmappedFolders() { Logger.Debug("Generating list of unmapped folders"); @@ -130,7 +96,7 @@ namespace NzbDrone.Core.Providers repoSeries.Status = series.Status; repoSeries.Language = series.Language != null ? series.Language.Abbriviation : string.Empty; repoSeries.Path = path; - repoSeries.CleanTitle = CleanUpRegex.Replace(series.SeriesName, "").ToLower(); + repoSeries.CleanTitle = Parser.NormalizeTitle(series.SeriesName); _sonioRepo.Add(repoSeries); } diff --git a/NzbDrone.Core/Providers/SyncProvider.cs b/NzbDrone.Core/Providers/SyncProvider.cs index 8621c16fa..3db2c4ded 100644 --- a/NzbDrone.Core/Providers/SyncProvider.cs +++ b/NzbDrone.Core/Providers/SyncProvider.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Threading; using NLog; -using NzbDrone.Core.Entities.Notification; +using NzbDrone.Core.Model.Notification; namespace NzbDrone.Core.Providers { @@ -58,7 +58,6 @@ namespace NzbDrone.Core.Providers { _notificationProvider.Register(_seriesSyncNotification); _seriesSyncNotification.CurrentStatus = "Analysing Folder"; - Thread.Sleep(20000); var unmappedFolders = _seriesProvider.GetUnmappedFolders(); _seriesSyncNotification.ProgressMax = unmappedFolders.Count; @@ -100,7 +99,7 @@ namespace NzbDrone.Core.Providers _seriesSyncNotification.CurrentStatus = "Series Scan Completed"; Logger.Info("Series folders scan has successfully completed."); Thread.Sleep(3000); - _seriesSyncNotification.Status = NotificationStatus.Completed; + _seriesSyncNotification.Status = ProgressNotificationStatus.Completed; } } catch (Exception e) diff --git a/NzbDrone.Core/Entities/Config.cs b/NzbDrone.Core/Repository/Config.cs similarity index 86% rename from NzbDrone.Core/Entities/Config.cs rename to NzbDrone.Core/Repository/Config.cs index bd65a1a57..898b69cf5 100644 --- a/NzbDrone.Core/Entities/Config.cs +++ b/NzbDrone.Core/Repository/Config.cs @@ -1,6 +1,6 @@ using SubSonic.SqlGeneration.Schema; -namespace NzbDrone.Core.Entities +namespace NzbDrone.Core.Repository { [SubSonicTableNameOverride("Config")] public class Config diff --git a/NzbDrone.Core/Entities/Episode/EpisodeInfo.cs b/NzbDrone.Core/Repository/Episode.cs similarity index 60% rename from NzbDrone.Core/Entities/Episode/EpisodeInfo.cs rename to NzbDrone.Core/Repository/Episode.cs index 34efad5ff..91445091f 100644 --- a/NzbDrone.Core/Entities/Episode/EpisodeInfo.cs +++ b/NzbDrone.Core/Repository/Episode.cs @@ -1,25 +1,29 @@ using System; using SubSonic.SqlGeneration.Schema; -namespace NzbDrone.Core.Entities.Episode +namespace NzbDrone.Core.Repository { - [SubSonicTableNameOverride("EpisodeInfo")] - public class EpisodeInfo : BasicEpisode + public class Episode { [SubSonicPrimaryKey(false)] public virtual int EpisodeId { get; set; } + public virtual int SeriesId { get; set; } + public int SeasonNumber { get; set; } + public int EpisodeNumber { get; set; } public int SeasonId { get; set; } public string Title { get; set; } public DateTime AirDate { get; set; } - [SubSonicLongString] public string Overview { get; set; } public string Language { get; set; } - public int MediaFileId { get; set; } + + [SubSonicNullString] + public string Path { get; set; } + public long? Size { get; set; } [SubSonicToOneRelation(ThisClassContainsJoinKey = true)] public virtual Season Season { get; set; } [SubSonicToOneRelation(ThisClassContainsJoinKey = true)] - public virtual MediaFile File { get; set; } + public virtual Series Series { get; private set; } } } diff --git a/NzbDrone.Core/Entities/MediaFile.cs b/NzbDrone.Core/Repository/EpisodeFile.cs similarity index 50% rename from NzbDrone.Core/Entities/MediaFile.cs rename to NzbDrone.Core/Repository/EpisodeFile.cs index 6670c21aa..4a8891ee4 100644 --- a/NzbDrone.Core/Entities/MediaFile.cs +++ b/NzbDrone.Core/Repository/EpisodeFile.cs @@ -1,15 +1,21 @@ -using NzbDrone.Core.Entities.Quality; +using System; +using NzbDrone.Core.Repository.Quality; using SubSonic.SqlGeneration.Schema; -namespace NzbDrone.Core.Entities +namespace NzbDrone.Core.Repository { - public class MediaFile + class EpisodeFile { [SubSonicPrimaryKey] public virtual int FileId { get; set; } + public int EpisodeId { get; set; } public string Path { get; set; } public QualityTypes Quality { get; set; } - public long Size { get; set; } public bool Proper { get; set; } + public long Size { get; set; } + public DateTime DateAdded { get; set; } + + [SubSonicToOneRelation] + public virtual Episode Episode { get; set; } } } diff --git a/NzbDrone.Core/Entities/Quality/AllowedQuality.cs b/NzbDrone.Core/Repository/Quality/AllowedQuality.cs similarity index 79% rename from NzbDrone.Core/Entities/Quality/AllowedQuality.cs rename to NzbDrone.Core/Repository/Quality/AllowedQuality.cs index ad32a134b..3ff1663f2 100644 --- a/NzbDrone.Core/Entities/Quality/AllowedQuality.cs +++ b/NzbDrone.Core/Repository/Quality/AllowedQuality.cs @@ -1,4 +1,4 @@ -namespace NzbDrone.Core.Entities.Quality +namespace NzbDrone.Core.Repository.Quality { public class AllowedQuality { diff --git a/NzbDrone.Core/Entities/Quality/QualityProfile.cs b/NzbDrone.Core/Repository/Quality/QualityProfile.cs similarity index 95% rename from NzbDrone.Core/Entities/Quality/QualityProfile.cs rename to NzbDrone.Core/Repository/Quality/QualityProfile.cs index 325ae7d81..20e666170 100644 --- a/NzbDrone.Core/Entities/Quality/QualityProfile.cs +++ b/NzbDrone.Core/Repository/Quality/QualityProfile.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.ComponentModel; using SubSonic.SqlGeneration.Schema; -namespace NzbDrone.Core.Entities.Quality +namespace NzbDrone.Core.Repository.Quality { public class QualityProfile { diff --git a/NzbDrone.Core/Entities/Quality/QualityTypes.cs b/NzbDrone.Core/Repository/Quality/QualityTypes.cs similarity index 92% rename from NzbDrone.Core/Entities/Quality/QualityTypes.cs rename to NzbDrone.Core/Repository/Quality/QualityTypes.cs index c27c77d1e..58e2b87fc 100644 --- a/NzbDrone.Core/Entities/Quality/QualityTypes.cs +++ b/NzbDrone.Core/Repository/Quality/QualityTypes.cs @@ -1,4 +1,4 @@ -namespace NzbDrone.Core.Entities.Quality +namespace NzbDrone.Core.Repository.Quality { // ReSharper disable InconsistentNaming /// <summary> @@ -13,7 +13,7 @@ namespace NzbDrone.Core.Entities.Quality /// <summary> /// SD File (Source could be HD) /// </summary> - SDTV = 1, + TV = 1, /// <summary> /// SD File (DVD Source) /// </summary> diff --git a/NzbDrone.Core/Entities/Season.cs b/NzbDrone.Core/Repository/Season.cs similarity index 82% rename from NzbDrone.Core/Entities/Season.cs rename to NzbDrone.Core/Repository/Season.cs index dc343ce3d..42e5ad1fd 100644 --- a/NzbDrone.Core/Entities/Season.cs +++ b/NzbDrone.Core/Repository/Season.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using SubSonic.SqlGeneration.Schema; -namespace NzbDrone.Core.Entities +namespace NzbDrone.Core.Repository { public class Season { @@ -13,7 +13,7 @@ namespace NzbDrone.Core.Entities public string Folder { get; set; } [SubSonicToManyRelation] - public virtual List<Episode.BasicEpisode> Episodes { get; private set; } + public virtual List<Episode> Episodes { get; private set; } [SubSonicToOneRelation(ThisClassContainsJoinKey = true)] public virtual Series Series { get; private set; } diff --git a/NzbDrone.Core/Entities/Series.cs b/NzbDrone.Core/Repository/Series.cs similarity index 84% rename from NzbDrone.Core/Entities/Series.cs rename to NzbDrone.Core/Repository/Series.cs index 304ba27d7..40f70f2ac 100644 --- a/NzbDrone.Core/Entities/Series.cs +++ b/NzbDrone.Core/Repository/Series.cs @@ -1,9 +1,8 @@ using System; using System.Collections.Generic; -using NzbDrone.Core.Entities.Episode; using SubSonic.SqlGeneration.Schema; -namespace NzbDrone.Core.Entities +namespace NzbDrone.Core.Repository { public class Series { @@ -14,6 +13,7 @@ namespace NzbDrone.Core.Entities public string CleanTitle { get; set; } + [SubSonicNullString] public string Status { get; set; } [SubSonicLongString] @@ -33,7 +33,7 @@ namespace NzbDrone.Core.Entities public virtual List<Season> Seasons { get; private set; } [SubSonicToManyRelation] - public virtual List<EpisodeInfo> Episodes { get; private set; } + public virtual List<Episode> Episodes { get; private set; } } diff --git a/NzbDrone.Web/Scripts/Notification.js b/NzbDrone.Web/Scripts/Notification.js index 215a2dc9a..502978d7e 100644 --- a/NzbDrone.Web/Scripts/Notification.js +++ b/NzbDrone.Web/Scripts/Notification.js @@ -33,7 +33,7 @@ $(function () { //set the message text $("#msgText").text(sMsg); //show the message - $('#msgBox').slideUp(speed, null); + $('#msgBox').slideDown(speed, null); } function CloseMsg() { diff --git a/NzbDrone.Web/Views/Series/Details.aspx b/NzbDrone.Web/Views/Series/Details.aspx index 2f0f12f6c..0052d81ce 100644 --- a/NzbDrone.Web/Views/Series/Details.aspx +++ b/NzbDrone.Web/Views/Series/Details.aspx @@ -1,4 +1,4 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NzbDrone.Core.Entities.Series>" %> +<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NzbDrone.Core.Repository.Series>" %> <%@ Import Namespace="Telerik.Web.Mvc.UI" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> diff --git a/NzbDrone.Web/Views/Series/index.aspx b/NzbDrone.Web/Views/Series/index.aspx index 8e5e604d5..f8ba79d03 100644 --- a/NzbDrone.Web/Views/Series/index.aspx +++ b/NzbDrone.Web/Views/Series/index.aspx @@ -1,4 +1,4 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<NzbDrone.Core.Entities.Series>>" %> +<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<NzbDrone.Core.Repository.Series>>" %> <%@ Import Namespace="Telerik.Web.Mvc.UI" %> <%@ Import Namespace="System.Globalization" %> diff --git a/NzbDrone/IISController.cs b/NzbDrone/IISController.cs index 666948adc..13603c94a 100644 --- a/NzbDrone/IISController.cs +++ b/NzbDrone/IISController.cs @@ -1,10 +1,9 @@ using System; -using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; -using System.Text; -using Microsoft.Web.Administration; +using System.Xml.Linq; +using System.Xml.XPath; using NLog; namespace NzbDrone @@ -46,7 +45,16 @@ namespace NzbDrone //Set Variables for the config file. Environment.SetEnvironmentVariable("NZBDRONE_PATH", Config.ProjectRoot); - UpdateIISConfig(); + + try + { + UpdateIISConfig(); + } + catch (Exception e) + { + Logger.Error("An error has occured while trying to update the config file.", e); + } + Logger.Info("Starting process. [{0}]", IISProcess.StartInfo.FileName); IISProcess.Start(); @@ -101,10 +109,22 @@ namespace NzbDrone private static void UpdateIISConfig() { + string configPath = Path.Combine(IISFolder, @"AppServer\applicationhost.config"); + + Logger.Info(@"Server configuration file: {0}", configPath); Logger.Info(@"Configuring server to: [http://localhost:{0}]", Config.Port); - var serverManager = new ServerManager(Path.Combine(IISFolder, @"AppServer\applicationhost.config")); - serverManager.Sites["NZBDrone"].Bindings[0].BindingInformation = string.Format("*:{0}:", Config.Port); - serverManager.CommitChanges(); + + var configXml = XDocument.Load(configPath); + + var bindings = configXml.XPathSelectElement("configuration/system.applicationHost/sites").Elements("site").Where(d => d.Attribute("name").Value.ToLowerInvariant() == "nzbdrone").First().Element("bindings"); + bindings.Descendants().Remove(); + bindings.Add( + new XElement("binding", + new XAttribute("protocol", "http"), + new XAttribute("bindingInformation", String.Format("*:{0}:", Config.Port)) + )); + + configXml.Save(configPath); } private static string CleanPath(string path) diff --git a/NzbDrone/NzbDrone.csproj b/NzbDrone/NzbDrone.csproj index 0b3851033..e3b4625cf 100644 --- a/NzbDrone/NzbDrone.csproj +++ b/NzbDrone/NzbDrone.csproj @@ -50,6 +50,9 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="Accessibility"> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <EmbedInteropTypes>True</EmbedInteropTypes> </Reference> @@ -60,9 +63,6 @@ <SpecificVersion>False</SpecificVersion> <HintPath>..\NzbDrone.Core\Libraries\Exceptioneer.WindowsFormsClient.dll</HintPath> </Reference> - <Reference Include="Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> - <Private>True</Private> - </Reference> <Reference Include="NLog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\NzbDrone.Core\Libraries\NLog.dll</HintPath> diff --git a/NzbDrone/app.config b/NzbDrone/app.config index 990c9b5e3..81d395705 100644 --- a/NzbDrone/app.config +++ b/NzbDrone/app.config @@ -4,6 +4,6 @@ <supportedRuntime version="v4.0" /> </startup> <appSettings> - <add key="port" value="8981" /> + <add key="port" value="8989" /> </appSettings> </configuration> \ No newline at end of file