本文整理汇总了C#中IBuildManager.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# IBuildManager.GetType方法的具体用法?C# IBuildManager.GetType怎么用?C# IBuildManager.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IBuildManager
的用法示例。
在下文中一共展示了IBuildManager.GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PerformSearch
static ConventionSearchResult PerformSearch(IView viewInstance, IEnumerable<string> viewInstanceSuffixes, IEnumerable<string> presenterTypeFullNameFormats, IBuildManager buildManager)
{
var viewType = viewInstance.GetType();
var presenterType = default(Type);
// Use the base type for pages & user controls as that is the code-behind file
// TODO: Ensure using BaseType still works in WebSite projects with code-beside files instead of code-behind files
if (viewType.Namespace == "ASP" &&
(typeof(Page).IsAssignableFrom(viewType) || typeof(Control).IsAssignableFrom(viewType)))
{
viewType = viewType.BaseType;
}
// Get presenter type name from view instance type name
var presenterTypeNames = new List<string> { GetPresenterTypeNameFromViewTypeName(viewType, viewInstanceSuffixes) };
// Get presenter type names from implemented IView interfaces
presenterTypeNames.AddRange(GetPresenterTypeNamesFromViewInterfaceTypeNames(viewType.GetViewInterfaces()));
// Create candidate presenter type full names
var candidatePresenterTypeFullNames = GenerateCandidatePresenterTypeFullNames(viewType, presenterTypeNames, presenterTypeFullNameFormats);
// Ask the build manager to load each type until one is found
var messages = new List<string>();
foreach (var typeFullName in candidatePresenterTypeFullNames.Distinct())
{
presenterType = buildManager.GetType(typeFullName, false);
if (presenterType == null)
{
messages.Add(string.Format(
CultureInfo.InvariantCulture,
"could not find a presenter with type name {0}",
typeFullName
));
continue;
}
if (!typeof(IPresenter).IsAssignableFrom(presenterType))
{
messages.Add(string.Format(
CultureInfo.InvariantCulture,
"found, but ignored, potential presenter with type name {0} because it does not implement IPresenter",
typeFullName
));
presenterType = null;
continue;
}
messages.Add(string.Format(
CultureInfo.InvariantCulture,
"found presenter with type name {0}",
typeFullName
));
break;
}
return new ConventionSearchResult(
"ConventionBasedPresenterDiscoveryStrategy:\r\n" +
string.Join("\r\n", messages.Select(m => "- " + m).ToArray()),
presenterType
);
}