本文整理汇总了C#中System.CodeDom.CodeMemberEvent.ToCode方法的典型用法代码示例。如果您正苦于以下问题:C# CodeMemberEvent.ToCode方法的具体用法?C# CodeMemberEvent.ToCode怎么用?C# CodeMemberEvent.ToCode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.CodeDom.CodeMemberEvent
的用法示例。
在下文中一共展示了CodeMemberEvent.ToCode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateEventWrapper
public static CodeTypeMember CreateEventWrapper(
this INamedTypeSymbol typeToWrap,
WrapsAttrNameChangeView eventNameChangeView,
IList<string> namespaces
)
{
IEventSymbol wrappedEventInfo =
typeToWrap.GetMembers(eventNameChangeView.Name).FirstOrDefault() as IEventSymbol;
const string eventImplTemplate =
@"
{
add { replaceableValue += value; }
remove { replaceableValue -= value; }
}";
string wrappedEventReferenceStr =
typeToWrap.Name.GetWrappedObjectFieldName() + "." + eventNameChangeView.Name;
string eventImplStr = eventImplTemplate.Replace("replaceableValue", wrappedEventReferenceStr);
ITypeSymbol eventTypeSymbol = wrappedEventInfo.Type;
CodeTypeReference eventTypeReference = eventTypeSymbol.GetTypeReference(namespaces);
CodeMemberEvent codeEvent = new CodeMemberEvent
{
Name = eventNameChangeView.WrapperName + eventImplStr,
Type = eventTypeReference
};
codeEvent.Attributes = wrappedEventInfo.GetFlags(eventNameChangeView.TheEncapsulationLevel);
string codeEventStr = codeEvent.ToCode().Trim();
int lastSemiColonIdx = codeEventStr.LastIndexOf(';');
codeEventStr = " " + codeEventStr.Remove(lastSemiColonIdx);
CodeSnippetTypeMember codeSnippet = new CodeSnippetTypeMember
{
Text = codeEventStr
};
return codeSnippet;
}