本文整理汇总了C#中IEngine.Initialise方法的典型用法代码示例。如果您正苦于以下问题:C# IEngine.Initialise方法的具体用法?C# IEngine.Initialise怎么用?C# IEngine.Initialise使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEngine
的用法示例。
在下文中一共展示了IEngine.Initialise方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Initialise
public void Initialise(string initialisingXml, IDocumentAccessor accessor)
{
try
{
Trace.WriteIf(_traceEngine, string.Format("{0}: {1}\r\n",
DateTime.Now.ToString("u"), "Initialise:\r\n" + initialisingXml));
if (_engine != null)
throw new Exception("Engine already initialised on server");
_initialisingXml = XElement.Parse(initialisingXml);
var arguments = Persistence.Arguments
.Parse(_initialisingXml, accessor);
var diagnosticsIdentity = BaseComponentWithEngine.GetArgumentIdentity(
BaseComponentWithEngine.ArgsWithEngine.Diagnostics);
var argDiagnostics = arguments
.Where(a => a.Id == diagnosticsIdentity.Id)
.Single()
as ArgumentParametersDiagnosticsEngine;
var diagnostics = argDiagnostics.Parameters;
if (diagnostics.LaunchDebugger)
Debugger.Launch();
var assemblyLoaders = arguments
.Where(a => a.Value is IAssemblyLoader)
.Select(a => a.Value as IAssemblyLoader);
foreach (var l in assemblyLoaders)
_assemblyLoader.Add(l);
var xmlType = _initialisingXml
.Elements("ExternalType")
.Single();
var externalType = new ExternalType();
externalType.Initialise(xmlType, accessor);
object engine = externalType.CreateInstance(out _engineType);
_engine = engine as IEngine;
Contract.Requires(_engine != null,
"\"{0}\" is not a \"{1}\"", engine.GetType(), typeof(IEngine));
_engine = Utilities.Diagnostics.AddDiagnostics(
diagnostics, _engine,
out _diagnosticsStream, true);
_engine.Initialise(initialisingXml);
}
catch (System.Exception e)
{
EngineMethodCatch(e);
}
}