本文整理汇总了C#中IServiceProvider类的典型用法代码示例。如果您正苦于以下问题:C# IServiceProvider类的具体用法?C# IServiceProvider怎么用?C# IServiceProvider使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IServiceProvider类属于命名空间,在下文中一共展示了IServiceProvider类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Initialize
public void Initialize(Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100 dtsComponentMetadata, IServiceProvider serviceProvider)
{
this.serviceProvider = serviceProvider;
this.metaData = dtsComponentMetadata;
this.connectionService = (IDtsConnectionService)serviceProvider.GetService(typeof(IDtsConnectionService));
}
示例2: RenameRuleObjectDialog
public RenameRuleObjectDialog(IServiceProvider serviceProvider, string oldName, NameValidatorDelegate nameValidator, BasicBrowserDialog parent)
{
if (oldName == null)
{
throw new ArgumentNullException("oldName");
}
if (serviceProvider == null)
{
throw new ArgumentNullException("serviceProvider");
}
if (nameValidator == null)
{
throw new ArgumentNullException("nameValidator");
}
this.serviceProvider = serviceProvider;
this.name = oldName;
this.nameValidator = nameValidator;
this.parent = parent;
this.InitializeComponent();
this.ruleNameTextBox.Text = oldName;
this.Text = parent.RenameTitleText;
this.newNamelabel.Text = parent.NewNameLabelText;
base.Icon = null;
IUIService service = (IUIService) this.serviceProvider.GetService(typeof(IUIService));
if (service != null)
{
this.Font = (Font) service.Styles["DialogFont"];
}
}
示例3: CreateTestServices
public static ServiceProvider CreateTestServices(
IServiceProvider applicationServices,
Project project,
ReportingChannel channel)
{
var services = new ServiceProvider(applicationServices);
var loggerFactory = new LoggerFactory();
loggerFactory.AddProvider(new TestHostLoggerProvider(channel));
services.Add(typeof(ILoggerFactory), loggerFactory);
var libraryExporter = applicationServices.GetRequiredService<ILibraryExporter>();
var export = libraryExporter.GetExport(project.Name);
var projectReference = export.MetadataReferences
.OfType<IMetadataProjectReference>()
.Where(r => r.Name == project.Name)
.FirstOrDefault();
services.Add(
typeof(ISourceInformationProvider),
new SourceInformationProvider(projectReference, loggerFactory.CreateLogger<SourceInformationProvider>()));
services.Add(typeof(ITestDiscoverySink), new TestDiscoverySink(channel));
services.Add(typeof(ITestExecutionSink), new TestExecutionSink(channel));
return services;
}
示例4: EditValue
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
IntPtr focus = UnsafeNativeMethods.GetFocus();
try
{
ICom2PropertyPageDisplayService service = (ICom2PropertyPageDisplayService) provider.GetService(typeof(ICom2PropertyPageDisplayService));
if (service == null)
{
service = this;
}
object instance = context.Instance;
if (!instance.GetType().IsArray)
{
instance = this.propDesc.TargetObject;
if (instance is ICustomTypeDescriptor)
{
instance = ((ICustomTypeDescriptor) instance).GetPropertyOwner(this.propDesc);
}
}
service.ShowPropertyPage(this.propDesc.Name, instance, this.propDesc.DISPID, this.guid, focus);
}
catch (Exception exception)
{
if (provider != null)
{
IUIService service2 = (IUIService) provider.GetService(typeof(IUIService));
if (service2 != null)
{
service2.ShowError(exception, System.Windows.Forms.SR.GetString("ErrorTypeConverterFailed"));
}
}
}
return value;
}
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:34,代码来源:Com2PropertyPageUITypeEditor.cs
示例5: GetUIHierarchyWindow
/// <summary>
/// Get reference to IVsUIHierarchyWindow interface from guid persistence slot.
/// </summary>
/// <param name="serviceProvider">The service provider.</param>
/// <param name="persistenceSlot">Unique identifier for a tool window created using IVsUIShell::CreateToolWindow.
/// The caller of this method can use predefined identifiers that map to tool windows if those tool windows
/// are known to the caller. </param>
/// <returns>A reference to an IVsUIHierarchyWindow interface.</returns>
public static IVsUIHierarchyWindow GetUIHierarchyWindow(IServiceProvider serviceProvider, Guid persistenceSlot)
{
if(serviceProvider == null)
{
throw new ArgumentNullException("serviceProvider");
}
IVsUIShell shell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell;
Debug.Assert(shell != null, "Could not get the ui shell from the project");
if(shell == null)
{
throw new InvalidOperationException();
}
object pvar = null;
IVsWindowFrame frame = null;
IVsUIHierarchyWindow uiHierarchyWindow = null;
try
{
ErrorHandler.ThrowOnFailure(shell.FindToolWindow(0, ref persistenceSlot, out frame));
ErrorHandler.ThrowOnFailure(frame.GetProperty((int)__VSFPROPID.VSFPROPID_DocView, out pvar));
}
finally
{
if(pvar != null)
{
uiHierarchyWindow = (IVsUIHierarchyWindow)pvar;
}
}
return uiHierarchyWindow;
}
示例6: CreateStore
private static IInMemoryDataStore CreateStore(IServiceProvider serviceProvider, bool persist)
{
var optionsBuilder = new EntityOptionsBuilder();
optionsBuilder.UseInMemoryStore(persist: persist);
return InMemoryTestHelpers.Instance.CreateContextServices(serviceProvider, optionsBuilder.Options).GetRequiredService<IInMemoryDataStore>();
}
示例7: AddOrchardLogging
public static ILoggerFactory AddOrchardLogging(
this ILoggerFactory loggingFactory,
IServiceProvider serviceProvider)
{
/* TODO (ngm): Abstract this logger stuff outta here! */
var loader = serviceProvider.GetRequiredService<IExtensionLoader>();
var manager = serviceProvider.GetRequiredService<IExtensionManager>();
var descriptor = manager.GetExtension("Orchard.Logging.Console");
var entry = loader.Load(descriptor);
var loggingInitiatorTypes = entry
.Assembly
.ExportedTypes
.Where(et => typeof(ILoggingInitiator).IsAssignableFrom(et));
IServiceCollection loggerCollection = new ServiceCollection();
foreach (var initiatorType in loggingInitiatorTypes) {
loggerCollection.AddScoped(typeof(ILoggingInitiator), initiatorType);
}
var moduleServiceProvider = serviceProvider.CreateChildContainer(loggerCollection).BuildServiceProvider();
foreach (var service in moduleServiceProvider.GetServices<ILoggingInitiator>()) {
service.Initialize(loggingFactory);
}
return loggingFactory;
}
示例8: EditValue
/// <summary>
/// <para>Edits the specified object's value using the editor style indicated by <see cref="GetEditStyle"/>. This should be a <see cref="DpapiSettings"/> object.</para>
/// </summary>
/// <param name="context"><para>An <see cref="ITypeDescriptorContext"/> that can be used to gain additional context information.</para></param>
/// <param name="provider"><para>An <see cref="IServiceProvider"/> that this editor can use to obtain services.</para></param>
/// <param name="value"><para>The object to edit. This should be a <see cref="Password"/> object.</para></param>
/// <returns><para>The new value of the <see cref="Password"/> object.</para></returns>
/// <seealso cref="UITypeEditor.EditValue(ITypeDescriptorContext, IServiceProvider, object)"/>
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
Debug.Assert(provider != null, "No service provider; we cannot edit the value");
if (provider != null)
{
IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
Debug.Assert(edSvc != null, "No editor service; we cannot edit the value");
if (edSvc != null)
{
IWindowsFormsEditorService service =(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
using (PasswordEditorUI dialog = new PasswordEditorUI())
{
if (DialogResult.OK == service.ShowDialog(dialog))
{
return new Password(dialog.Password);
}
else
{
return value;
}
}
}
}
return value;
}
示例9: ProjectBindingOperation
public ProjectBindingOperation(IServiceProvider serviceProvider, Project project, ISolutionRuleStore ruleStore)
{
if (serviceProvider == null)
{
throw new ArgumentNullException(nameof(serviceProvider));
}
if (project == null)
{
throw new ArgumentNullException(nameof(project));
}
if (ruleStore == null)
{
throw new ArgumentNullException(nameof(ruleStore));
}
this.serviceProvider = serviceProvider;
this.initializedProject = project;
this.ruleStore = ruleStore;
this.sourceControlledFileSystem = this.serviceProvider.GetService<ISourceControlledFileSystem>();
this.sourceControlledFileSystem.AssertLocalServiceIsNotNull();
this.ruleSetSerializer = this.serviceProvider.GetService<IRuleSetSerializer>();
this.ruleSetSerializer.AssertLocalServiceIsNotNull();
}
示例10: Execute
public static async Task<int> Execute(
IServiceProvider services,
Project project,
string command,
string[] args)
{
var environment = (IApplicationEnvironment)services.GetService(typeof(IApplicationEnvironment));
var commandText = project.Commands[command];
var replacementArgs = CommandGrammar.Process(
commandText,
(key) => GetVariable(environment, key),
preserveSurroundingQuotes: false)
.ToArray();
var entryPoint = replacementArgs[0];
args = replacementArgs.Skip(1).Concat(args).ToArray();
if (string.IsNullOrEmpty(entryPoint) ||
string.Equals(entryPoint, "run", StringComparison.Ordinal))
{
entryPoint = project.EntryPoint ?? project.Name;
}
CallContextServiceLocator.Locator.ServiceProvider = services;
return await ExecuteMain(services, entryPoint, args);
}
示例11: EditValue
/// <include file='doc\QueuePathEditor.uex' path='docs/doc[@for="QueuePathEditor.EditValue"]/*' />
/// <devdoc>
/// Edits the given object value using the editor style provided by
/// GetEditorStyle. A service provider is provided so that any
/// required editing services can be obtained.
/// </devdoc>
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
if (provider != null)
{
IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
QueuePathDialog dialog = new QueuePathDialog(provider);
MessageQueue queue = null;
if (value is MessageQueue)
queue = (MessageQueue)value;
else if (value is string)
queue = new MessageQueue((string)value);
else if (value != null)
return value;
if (queue != null)
dialog.SelectQueue(queue);
IDesignerHost host = (IDesignerHost)provider.GetService(typeof(IDesignerHost));
DesignerTransaction trans = null;
if (host != null)
trans = host.CreateTransaction();
try
{
if ((context == null || context.OnComponentChanging()) && edSvc.ShowDialog(dialog) == DialogResult.OK)
{
if (dialog.Path != String.Empty)
{
if (context.Instance is MessageQueue || context.Instance is MessageQueueInstaller)
value = dialog.Path;
else
{
value = MessageQueueConverter.GetFromCache(dialog.Path);
if (value == null)
{
value = new MessageQueue(dialog.Path);
MessageQueueConverter.AddToCache((MessageQueue)value);
if (context != null)
context.Container.Add((IComponent)value);
}
}
context.OnComponentChanged();
}
}
}
finally
{
if (trans != null)
{
trans.Commit();
}
}
}
}
return value;
}
示例12: JsonRpcDispatcher
public JsonRpcDispatcher(IService service, IServiceProvider serviceProvider)
{
if (service == null)
throw new ArgumentNullException("service");
_service = service;
if (serviceProvider == null)
{
//
// No service provider supplied so check if the RPC service
// itself is our service provider.
//
serviceProvider = service as IServiceProvider;
//
// If no service provider found so far, then create a default
// one.
//
if (serviceProvider == null)
serviceProvider = new ServiceContainer();
}
_serviceProvider = serviceProvider;
}
示例13: CreateInstance
public virtual object CreateInstance (IServiceProvider provider, Type objectType, Type[] argTypes, object[] args)
{
if (_parent != null)
return _parent.CreateInstance (provider, objectType, argTypes, args);
return System.Activator.CreateInstance (objectType, args);
}
示例14: EditValue
/// <summary>
/// This describes how to launch the form etc.
/// </summary>
/// <param name="context"></param>
/// <param name="provider"></param>
/// <param name="value"></param>
/// <returns></returns>
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
_context = context;
IWindowsFormsEditorService dialogProvider = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
SQLExpressionDialog dlgExpression = new SQLExpressionDialog();
string original = (string)value;
dlgExpression.Expression = (string)value;
// Try to find the Table
IFeatureCategory category = context.Instance as IFeatureCategory;
if (category != null)
{
IFeatureScheme scheme = category.GetParentItem() as IFeatureScheme;
if (scheme != null)
{
IFeatureLayer layer = scheme.GetParentItem() as IFeatureLayer;
if (layer != null)
{
dlgExpression.Table = layer.DataSet.DataTable;
}
}
else
{
IFeatureLayer layer = category.GetParentItem() as IFeatureLayer;
if (layer != null)
{
dlgExpression.Table = layer.DataSet.DataTable;
}
}
}
dlgExpression.ChangesApplied += DlgExpressionChangesApplied;
return dialogProvider.ShowDialog(dlgExpression) != DialogResult.OK ? original : dlgExpression.Expression;
}
示例15: ImportWizard
public ImportWizard(IServiceProvider serviceProvider, string sourcePath, string projectPath) {
var interpreterService = serviceProvider.GetComponentModel().GetService<IInterpreterOptionsService>();
_site = serviceProvider;
ImportSettings = new ImportSettings(serviceProvider, interpreterService);
_pageSequence = new CollectionViewSource {
Source = new ObservableCollection<Page>(new Page[] {
new FileSourcePage { DataContext = ImportSettings },
new InterpreterPage { DataContext = ImportSettings },
new SaveProjectPage { DataContext = ImportSettings }
})
};
PageCount = _pageSequence.View.OfType<object>().Count();
PageSequence = _pageSequence.View;
PageSequence.CurrentChanged += PageSequence_CurrentChanged;
PageSequence.MoveCurrentToFirst();
if (!string.IsNullOrEmpty(sourcePath)) {
ImportSettings.SetInitialSourcePath(sourcePath);
Loaded += ImportWizard_Loaded;
}
if (!string.IsNullOrEmpty(projectPath)) {
ImportSettings.SetInitialProjectPath(projectPath);
}
ImportSettings.UpdateIsValid();
DataContext = this;
InitializeComponent();
}