//-----------------------------------------------------------------------
//
// Copyright (c) Outercurve Foundation. All rights reserved.
//
//-----------------------------------------------------------------------
namespace DotNetOpenAuth.OpenId.ChannelElements {
using System.Collections.Generic;
using DotNetOpenAuth.Messaging;
using DotNetOpenAuth.OpenId.Messages;
///
/// OpenID extension factory class for creating extensions based on received Type URIs.
///
///
/// OpenID extension factories must be registered with the library. This can be
/// done by adding a factory to OpenIdRelyingParty.ExtensionFactories
/// or OpenIdProvider.ExtensionFactories, or by adding a snippet
/// such as the following to your web.config file:
///
/// <dotNetOpenAuth>
/// <openid>
/// <extensionFactories>
/// <add type="DotNetOpenAuth.ApplicationBlock.CustomExtensions.Acme, DotNetOpenAuth.ApplicationBlock" />
/// </extensionFactories>
/// </openid>
/// </dotNetOpenAuth>
///
///
public interface IOpenIdExtensionFactory {
///
/// Creates a new instance of some extension based on the received extension parameters.
///
/// The type URI of the extension.
/// The parameters associated specifically with this extension.
/// The OpenID message carrying this extension.
/// A value indicating whether this extension is being received at the OpenID Provider.
///
/// An instance of if the factory recognizes
/// the extension described in the input parameters; null otherwise.
///
///
/// This factory method need only initialize properties in the instantiated extension object
/// that are not bound using .
///
IOpenIdMessageExtension Create(string typeUri, IDictionary data, IProtocolMessageWithExtensions baseMessage, bool isProviderRole);
}
}