.net 应用迁移到Mono 工具 (Moma)

简介:
   Mono Migration Analyzer (Moma)  是一个用于开发者使用的MS .net下开发的应用程序迁移到Mono平台的不兼容性检测工具。工具通过分析.dll或者.exe程序集的代码是否符合ECMA CLI,大家都知道符合ECMA CLI标准的.net 程序可以运行于MS .net和Mono平台。这个工具使用Cecil,这是一个用于检测代码是否符合ECMA CLI标准的类库,Mono网站上的小工具还真多。到 [url]http://www.mono-project.com/MoMA[/url] 下载最新版本,解压后运行MoMA.exe,选择一个要分析的程序集,可以选择一组程序集一起分析,在程序集分析过程中,这个工具会分析程序集中的所有方法、属性,事件引用的所有方法,报告方法存在的问题,使用很简单。
Step 1
 
Step 2
 
Step 3
 
Step 4
 

我用它分析了一下Castle的 程序集,发现他还是很多问题。看来迁移到Mono 不是一件容易的事情。分析结果附后,有兴趣的你可以自己分析自己的程序集看看。

MoMA Scan Results


Scan time: 2006-11-30 21:27:32

For descriptions of issues and what to do, see  [url]http://www.mono-project.com/MoMA_-_Issue_Descriptions[/url].

anrControls.Markdown.NET.dll

No Issues Found


antlr.runtime.dll

No Issues Found


AopAlliance.dll

No Issues Found


Bamboo.Prevalence.Collections.dll

No Issues Found


Bamboo.Prevalence.dll

P/Invokes into native code

Calling Method P/Invoke Method External DLL
Class Bamboo.Prevalence.Implementation.CommandLogWriter:
void Win32HardFlush(FileStream) int FlushFileBuffers(IntPtr) KERNEL32.DLL


Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Bamboo.Prevalence.Implementation.CommandLogWriter:
void Win32HardFlush(FileStream) int Marshal.GetHRForLastWin32Error()


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Bamboo.Prevalence.Implementation.CommandLogWriter:
void Win32HardFlush(FileStream) int Marshal.GetHRForLastWin32Error() Not Specified


Bamboo.Prevalence.Indexing.dll

No Issues Found


Bamboo.Prevalence.Util.dll

No Issues Found


Bamboo.Prevalence.XPath.dll

No Issues Found


Boo.Lang.CodeDom.dll

No Issues Found


Boo.Lang.Compiler.dll

Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Boo.Lang.Compiler.Steps.EmitAssembly:
void OnExponentiation(BinaryExpression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
bool EmitToBoolIfNeeded(Expression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
bool EmitToBoolIfNeeded(Expression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void InvokeRegularMethod(IMethod, MethodInfo, MethodInvocationExpression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void InvokeSuperMethod(IMethod, MethodInvocationExpression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void EmitGetTypeFromHandle(Type) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void OnHashLiteralExpression(HashLiteralExpression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void EmitNormalizedArrayIndex(Expression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void OnExpressionInterpolationExpression(ExpressionInterpolationExpression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void OnExpressionInterpolationExpression(ExpressionInterpolationExpression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void OnExpressionInterpolationExpression(ExpressionInterpolationExpression) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void SetProperty(Node, IProperty, Expression, Expression, bool) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void EmitCastIfNeeded(IType, IType) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void EmitCastIfNeeded(IType, IType) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
void EmitUnbox(IType) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported


Boo.Lang.dll

Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Boo.Lang.Runtime.RuntimeServices:
MethodInfo EmitConversionProxy(Type, Type, MethodInfo) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
Class Boo.Lang.Builtins:
string shellm(string, String[]) AppDomain AppDomain.CreateDomain(string, Evidence, AppDomainSetup) Currently it does not allow the setup in the other domain


Boo.Lang.Interpreter.dll

No Issues Found


Boo.Lang.Parser.dll

No Issues Found


Boo.Lang.Useful.dll

No Issues Found


Boo.Microsoft.Build.Tasks.dll

Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Boo.Microsoft.Build.Tasks.Booc:
string GenerateFullPathToTool() string ToolLocationHelper.GetPathToDotNetFrameworkFile(string, TargetDotNetFrameworkVersion)
string GenerateFullPathToTool() string ToolLocationHelper.GetDotNetFrameworkVersionFolderPrefix(TargetDotNetFrameworkVersion)


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Boo.Microsoft.Build.Tasks.Booc:
string GenerateFullPathToTool() string ToolLocationHelper.GetPathToDotNetFrameworkFile(string, TargetDotNetFrameworkVersion) Not Specified
string GenerateFullPathToTool() string ToolLocationHelper.GetDotNetFrameworkVersionFolderPrefix(TargetDotNetFrameworkVersion) Not Specified


Boo.NAnt.Tasks.dll

No Issues Found


Cassini.dll

Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Cassini.Connection:
string get_LocalIP() EndPoint Socket.get_LocalEndPoint()
string get_RemoteIP() EndPoint Socket.get_RemoteEndPoint()


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Cassini.Server:
string GetInstallPathAndConfigureAspNetIfNeeded() RegistryKey RegistryKey.CreateSubKey(string) RegistryPermission
string GetInstallPathAndConfigureAspNetIfNeeded() RegistryKey RegistryKey.CreateSubKey(string) RegistryPermission


IBatisNet.Common.dll

Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class IBatisNet.Common.Transaction.TransactionScope:
bool get_IsInTransaction() bool ContextUtil.get_IsInTransaction()
void EnterTransactionContext() void ServiceConfig..ctor()
void EnterTransactionContext() void ServiceConfig.set_TrackingEnabled(bool)
void EnterTransactionContext() void ServiceConfig.set_TrackingAppName(string)
void EnterTransactionContext() void ServiceConfig.set_TrackingComponentName(string)
void EnterTransactionContext() void ServiceConfig.set_TransactionDescription(string)
void EnterTransactionContext() void ServiceConfig.set_Transaction(TransactionOption)
void EnterTransactionContext() void ServiceConfig.set_TransactionTimeout(int)
void EnterTransactionContext() void ServiceConfig.set_IsolationLevel(TransactionIsolationLevel)
void EnterTransactionContext() void ServiceDomain.Enter(ServiceConfig)
void EnterTransactionContext() Guid ContextUtil.get_ContextId()
void Close() bool ContextUtil.get_IsInTransaction()
void Close() void ContextUtil.EnableCommit()
void Close() void ContextUtil.DisableCommit()
void Close() TransactionStatus ServiceDomain.Leave()


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class IBatisNet.Common.Utilities.Objects.Members.DelegatePropertySetAccessor:
void .ctor(Type, string) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
Class IBatisNet.Common.Utilities.Objects.Members.EmitPropertyGetAccessor:
void EmitType(ModuleBuilder) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
Class IBatisNet.Common.Utilities.Objects.Members.DelegatePropertyGetAccessor:
void .ctor(Type, string) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
Class IBatisNet.Common.Utilities.Objects.Members.EmitPropertySetAccessor:
void EmitType(ModuleBuilder) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
Class IBatisNet.Common.Transaction.TransactionScope:
bool get_IsInTransaction() bool ContextUtil.get_IsInTransaction() Not Specified
void EnterTransactionContext() void ServiceConfig..ctor() Not Specified
void EnterTransactionContext() void ServiceDomain.Enter(ServiceConfig) Not Specified
void EnterTransactionContext() Guid ContextUtil.get_ContextId() Not Specified
void Close() bool ContextUtil.get_IsInTransaction() Not Specified
void Close() void ContextUtil.EnableCommit() Not Specified
void Close() void ContextUtil.DisableCommit() Not Specified
void Close() TransactionStatus ServiceDomain.Leave() Not Specified


IBatisNet.DataMapper.dll

No Issues Found


Iesi.Collections.dll

No Issues Found


log4net.dll

P/Invokes into native code

Calling Method P/Invoke Method External DLL
Class log4net.Appender.ColoredConsoleAppender:
void Append(LoggingEvent) IntPtr GetStdHandle(uint) Kernel32.dll
void Append(LoggingEvent) IntPtr GetStdHandle(uint) Kernel32.dll
void Append(LoggingEvent) bool GetConsoleScreenBufferInfo(IntPtr, ColoredConsoleAppender/CONSOLE_SCREEN_BUFFER_INFO&) Kernel32.dll
void Append(LoggingEvent) bool SetConsoleTextAttribute(IntPtr, UInt16) Kernel32.dll
void Append(LoggingEvent) bool SetConsoleTextAttribute(IntPtr, UInt16) Kernel32.dll
void ActivateOptions() int GetConsoleOutputCP() Kernel32.dll
Class log4net.Appender.LocalSyslogAppender:
void ActivateOptions() void openlog(IntPtr, int, LocalSyslogAppender/SyslogFacility) libc
void Append(LoggingEvent) void syslog(int, string) libc
void OnClose() void closelog() libc
Class log4net.Appender.NetSendAppender:
void Append(LoggingEvent) int NetMessageBufferSend(string, string, string, string, int) netapi32.dll
Class log4net.Appender.OutputDebugStringAppender:
void Append(LoggingEvent) void OutputDebugString(string) Kernel32.dll
Class log4net.Util.NativeError:
string GetErrorMessage(int) int FormatMessage(int, IntPtr&, int, int, String&, int, IntPtr) Kernel32.dll
Class log4net.Util.WindowsSecurityContext:
WindowsIdentity LogonUser(string, string, string) bool LogonUser(string, string, string, int, int, IntPtr&) advapi32.dll
WindowsIdentity LogonUser(string, string, string) bool DuplicateToken(IntPtr, int, IntPtr&) advapi32.dll
WindowsIdentity LogonUser(string, string, string) bool CloseHandle(IntPtr) kernel32.dll
WindowsIdentity LogonUser(string, string, string) bool CloseHandle(IntPtr) kernel32.dll
WindowsIdentity LogonUser(string, string, string) bool CloseHandle(IntPtr) kernel32.dll


Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class log4net.Appender.TelnetAppender/SocketHandler:
void OnConnect(IAsyncResult) EndPoint Socket.get_RemoteEndPoint()
Class log4net.Config.XmlConfigurator:
void Configure(ILoggerRepository, Uri) void WebRequest.set_Credentials(ICredentials)
void Configure(ILoggerRepository, Uri) WebResponse WebRequest.GetResponse()


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class log4net.Appender.EventLogAppender:
void ActivateOptions() string EventLog.LogNameFromSourceName(string, string) Support remote machine
void ActivateOptions() void EventLog.DeleteEventSource(string, string) Support remote machine
void ActivateOptions() string EventLog.LogNameFromSourceName(string, string) Support remote machine
void ActivateOptions() string EventLog.LogNameFromSourceName(string, string) Support remote machine


NetronGraphLib.dll

P/Invokes into native code

Calling Method P/Invoke Method External DLL
Class Netron.GraphLib.UI.GraphControl:
void SaveImage(string) bool BitBlt(IntPtr, int, int, int, int, IntPtr, int, int, int) gdi32.dll


Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Netron.GraphLib.UI.GraphControlDesigner:
void Initialize(IComponent) void ControlDesigner.Initialize(IComponent)
void OnPaintAdornments(PaintEventArgs) void ControlDesigner.OnPaintAdornments(PaintEventArgs)
void .ctor() void ControlDesigner..ctor()
Class Netron.GraphLib.PropertyBag:
Object System.ComponentModel.ICustomTypeDescriptor.GetEditor(Type) Object TypeDescriptor.GetEditor(Object, Type, bool)


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Netron.GraphLib.UI.GraphControlDesigner:
void Initialize(IComponent) void ControlDesigner.Initialize(IComponent) Not Specified
void OnPaintAdornments(PaintEventArgs) void ControlDesigner.OnPaintAdornments(PaintEventArgs) Not Specified
void .ctor() void ControlDesigner..ctor() Not Specified
Class Netron.GraphLib.PropertyBag:
Object System.ComponentModel.ICustomTypeDescriptor.GetEditor(Type) Object TypeDescriptor.GetEditor(Object, Type, bool) Not Specified


NetronMaths.dll

No Issues Found


NHibernate.dll

Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class NHibernate.Bytecode.CodeDom.BytecodeProviderImpl/Generator:
IReflectionOptimizer Build(string) CompilerResults CodeDomProvider.CompileAssemblyFromSource(CompilerParameters, String[])


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class NHibernate.Property.BasicSetter:
void Emit(ILGenerator) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
Class NHibernate.Bytecode.EmitUtil:
void EmitCreateDelegateInstance(ILGenerator, Type, MethodInfo) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported
Class NHibernate.Property.BasicGetter:
void Emit(ILGenerator) void ILGenerator.EmitCall(OpCode, MethodInfo, Type[]) vararg methods are not supported


NLog.dll

Methods missing from Mono

Calling Method Method not yet in Mono
Class NLog.Internal.FileAppenders.BaseFileAppender:
FileStream WindowsCreateFile(string, bool) void FileStream..ctor(SafeFileHandle, FileAccess, int)
Class NLog.Win32.Targets.PerfCounterTarget:
void InitializePerfCounter() PerformanceCounterCategory PerformanceCounterCategory.Create(string, string, PerformanceCounterCategoryType, CounterCreationDataCollection)


P/Invokes into native code

Calling Method P/Invoke Method External DLL
Class NLog.Internal.FileAppenders.BaseFileAppender:
FileStream WindowsCreateFile(string, bool) IntPtr CreateFile(string, Win32FileHelper/FileAccess, int, IntPtr, Win32FileHelper/CreationDisposition, Win32FileAttributes, IntPtr) kernel32.dll
Class NLog.Internal.Win32FileInfoHelper:
bool GetFileInfo(string, IntPtr, DateTime&, Int64&) bool GetFileInformationByHandle(IntPtr, Win32FileHelper/BY_HANDLE_FILE_INFORMATION&) kernel32.dll
Class NLog.Internal.Win32ThreadIDHelper:
int get_CurrentUnmanagedThreadID() int GetCurrentThreadId() kernel32.dll
void .ctor() int GetCurrentProcessId() kernel32.dll
void .ctor() uint GetModuleFileName(IntPtr, StringBuilder, int) kernel32.dll
Class NLog.LayoutRenderers.QpcLayoutRenderer:
void Append(StringBuilder, LogEventInfo) bool QueryPerformanceCounter(UInt64&) kernel32.dll
void Append(StringBuilder, LogEventInfo) bool QueryPerformanceFrequency(UInt64&) kernel32.dll
Class NLog.Win32.Targets.ColoredConsoleTarget:
void Write(LogEventInfo) IntPtr GetStdHandle(int) kernel32.dll
void Write(LogEventInfo) bool GetConsoleScreenBufferInfo(IntPtr, ConsoleWin32Api/CONSOLE_SCREEN_BUFFER_INFO&) kernel32.dll
void Write(LogEventInfo) bool GetConsoleScreenBufferInfo(IntPtr, ConsoleWin32Api/CONSOLE_SCREEN_BUFFER_INFO&) kernel32.dll
void Write(LogEventInfo) bool SetConsoleTextAttribute(IntPtr, UInt16) kernel32.dll
void Write(LogEventInfo) bool FillConsoleOutputAttribute(IntPtr, UInt16, int, ConsoleWin32Api/COORD, UInt32&) kernel32.dll
void Write(LogEventInfo) bool SetConsoleTextAttribute(IntPtr, UInt16) kernel32.dll
void ColorizeEscapeSequences(TextWriter, IntPtr, string, UInt16, UInt16) bool SetConsoleTextAttribute(IntPtr, UInt16) kernel32.dll
void ColorizeEscapeSequences(TextWriter, IntPtr, string, UInt16, UInt16) bool SetConsoleTextAttribute(IntPtr, UInt16) kernel32.dll
void ColorizeEscapeSequences(TextWriter, IntPtr, string, UInt16, UInt16) bool SetConsoleTextAttribute(IntPtr, UInt16) kernel32.dll
void ColorizeEscapeSequences(TextWriter, IntPtr, string, UInt16, UInt16) bool SetConsoleTextAttribute(IntPtr, UInt16) kernel32.dll
void ColorizeEscapeSequences(TextWriter, IntPtr, string, UInt16, UInt16) bool SetConsoleTextAttribute(IntPtr, UInt16) kernel32.dll
Class NLog.Win32.Targets.OutputDebugStringTarget:
void Write(LogEventInfo) void OutputDebugString(string) kernel32.dll
Class NLog.Win32.ASPHelper:
ASPHelper/ISessionObject GetSessionObject() int CoGetObjectContext(Guid&, ASPHelper/IObjectContext&) ole32.dll
ASPHelper/IApplicationObject GetApplicationObject() int CoGetObjectContext(Guid&, ASPHelper/IObjectContext&) ole32.dll
ASPHelper/IRequest GetRequestObject() int CoGetObjectContext(Guid&, ASPHelper/IObjectContext&) ole32.dll
ASPHelper/IResponse GetResponseObject() int CoGetObjectContext(Guid&, ASPHelper/IObjectContext&) ole32.dll


Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class NLog.Internal.FileAppenders.BaseFileAppender:
FileStream WindowsCreateFile(string, bool) int Marshal.GetHRForLastWin32Error()
Class NLog.Internal.FileAppenders.MutexMultiProcessFileAppender:
bool GetFileInfo(DateTime&, Int64&) SafeFileHandle FileStream.get_SafeFileHandle()
bool GetFileInfo(DateTime&, Int64&) IntPtr SafeHandle.DangerousGetHandle()
Class NLog.LayoutRenderers.PerformanceCounterLayoutRenderer:
void InvalidatePerformanceCounter() void PerformanceCounter.Close()
void Append(StringBuilder, LogEventInfo) Single PerformanceCounter.NextValue()
Class NLog.Targets.WebServiceTarget:
void InvokeSoap11(Object[]) void WebRequest.set_Method(string)
void InvokeSoap11(Object[]) void WebRequest.set_ContentType(string)
void InvokeSoap11(Object[]) WebHeaderCollection WebRequest.get_Headers()
void InvokeSoap11(Object[]) Stream WebRequest.GetRequestStream()
void InvokeSoap11(Object[]) WebResponse WebRequest.GetResponse()
void InvokeSoap12(Object[]) void WebRequest.set_Method(string)
void InvokeSoap12(Object[]) void WebRequest.set_ContentType(string)
void InvokeSoap12(Object[]) Stream WebRequest.GetRequestStream()
void InvokeSoap12(Object[]) WebResponse WebRequest.GetResponse()
void InvokeHttpPost(Object[]) void WebRequest.set_Method(string)
void InvokeHttpPost(Object[]) void WebRequest.set_ContentType(string)
void InvokeHttpPost(Object[]) Stream WebRequest.GetRequestStream()
void InvokeHttpPost(Object[]) WebResponse WebRequest.GetResponse()
Class NLog.Win32.Targets.MSMQTarget:
void Write(LogEventInfo) bool MessageQueue.Exists(string)
void Write(LogEventInfo) MessageQueue MessageQueue.Create(string)
void Write(LogEventInfo) void MessageQueue.Send(Object)
Message PrepareMessage(LogEventInfo) void Message.set_Label(string)
Message PrepareMessage(LogEventInfo) void Message.set_Recoverable(bool)
Message PrepareMessage(LogEventInfo) void Message.set_Priority(MessagePriority)
Message PrepareMessage(LogEventInfo) void Message.set_Body(Object)
Message PrepareMessage(LogEventInfo) Stream Message.get_BodyStream()
Class NLog.Win32.Targets.PerfCounterTarget:
void Write(LogEventInfo) Int64 PerformanceCounter.Increment()
void InitializePerfCounter() void PerformanceCounter.Close()
void InitializePerfCounter() bool PerformanceCounterCategory.Exists(string)
void InitializePerfCounter() bool PerformanceCounterCategory.CounterExists(string, string)
void InitializePerfCounter() bool PerformanceCounterCategory.Exists(string)
void InitializePerfCounter() void PerformanceCounterCategory.Delete(string)


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class NLog.Internal.FileAppenders.BaseFileAppender:
FileStream WindowsCreateFile(string, bool) int Marshal.GetHRForLastWin32Error() Not Specified
Class NLog.Internal.FileAppenders.MutexMultiProcessFileAppender:
bool GetFileInfo(DateTime&, Int64&) IntPtr SafeHandle.DangerousGetHandle() Not Specified
Class NLog.LayoutRenderers.PerformanceCounterLayoutRenderer:
void InvalidatePerformanceCounter() void PerformanceCounter.Close() Not Specified
void Append(StringBuilder, LogEventInfo) Single PerformanceCounter.NextValue() Not Specified
Class NLog.Targets.MailTarget:
void SendMessage(MailMessage) void SmtpClient..ctor(string, int) Load default settings from configuration.
void SendMessage(MailMessage) void SmtpClient.Send(MailMessage) Need to work on message attachments.
Class NLog.Win32.Targets.EventLogTarget:
void UpdateEventLogSource() bool EventLog.SourceExists(string, string) Support remote machines
void UpdateEventLogSource() string EventLog.LogNameFromSourceName(string, string) Support remote machine
void UpdateEventLogSource() void EventLog.DeleteEventSource(string, string) Support remote machine
void UpdateEventLogSource() void EventLog.CreateEventSource(EventSourceCreationData) Support remote machine
void UpdateEventLogSource() void EventLog.CreateEventSource(EventSourceCreationData) Support remote machine
Class NLog.Win32.Targets.MSMQTarget:
void Write(LogEventInfo) bool MessageQueue.Exists(string) Not Specified
void Write(LogEventInfo) MessageQueue MessageQueue.Create(string) Not Specified
void Write(LogEventInfo) void MessageQueue..ctor(string) Not Specified
void Write(LogEventInfo) void MessageQueue.Send(Object) Not Specified
Message PrepareMessage(LogEventInfo) void Message..ctor() Not Specified
Message PrepareMessage(LogEventInfo) void Message.set_Label(string) Not Specified
Message PrepareMessage(LogEventInfo) void Message.set_Recoverable(bool) Not Specified
Message PrepareMessage(LogEventInfo) void Message.set_Priority(MessagePriority) Not Specified
Message PrepareMessage(LogEventInfo) void Message.set_Body(Object) Not Specified
Message PrepareMessage(LogEventInfo) Stream Message.get_BodyStream() Not Specified
Class NLog.Win32.Targets.PerfCounterTarget:
void Write(LogEventInfo) Int64 PerformanceCounter.Increment() Not Specified
void InitializePerfCounter() void PerformanceCounter.Close() Not Specified
void InitializePerfCounter() bool PerformanceCounterCategory.Exists(string) Not Specified
void InitializePerfCounter() bool PerformanceCounterCategory.CounterExists(string, string) Not Specified
void InitializePerfCounter() bool PerformanceCounterCategory.Exists(string) Not Specified
void InitializePerfCounter() void PerformanceCounterCategory.Delete(string) Not Specified


Nullables.dll

No Issues Found


Nullables.NHibernate.dll

No Issues Found


nunit.framework.dll

No Issues Found


NVelocity.dll

No Issues Found


NVelocity.Tests.dll

No Issues Found


Castle.Facilities.AutomaticTransactionManagement.dll

No Issues Found


AspectSharp.dll

No Issues Found


AspectSharp.Lang.dll

P/Invokes into native code

Calling Method P/Invoke Method External DLL
Class AspectSharp.Lang.GacHelper:
IAssemblyEnum CreateGACEnum() void CreateAssemblyEnum(IAssemblyEnum&, IntPtr, IAssemblyName, ASM_CACHE_FLAGS, IntPtr) fusion.dll


Castle.ActiveRecord.dll

No Issues Found


Castle.Components.Binder.dll

No Issues Found


Castle.Components.Common.EmailSender.dll

Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.Components.Common.EmailSender.Smtp.SmtpSender:
void set_Timeout(int) void SmtpClient.set_Timeout(int) Check to make sure an email is not being sent.
void Send(Message) void SmtpClient.SendAsync(MailMessage, Object) Not Specified
void Send(Message) void SmtpClient.Send(MailMessage) Need to work on message attachments.
MailMessage CreateMailMessage(Message) void Attachment..ctor(Stream, string) Not Specified
MailMessage CreateMailMessage(Message) void Attachment..ctor(string, string) Not Specified
void ConfigureSender(Message) void SmtpClient.set_Port(int) Check to make sure an email is not being sent.


Castle.Components.Common.TemplateEngine.dll

No Issues Found


Castle.Components.Common.TemplateEngine.NVelocityTemplateEngine.dll

No Issues Found


Castle.Components.Winforms.AssemblyResolver.dll

No Issues Found


Castle.Core.dll

Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.Core.Logging.DiagnosticsLogger:
void .ctor(string, string, string) bool EventLog.SourceExists(string, string) Support remote machines
void .ctor(string, string, string) void EventLog.CreateEventSource(EventSourceCreationData) Support remote machine


Castle.DynamicProxy2.dll

No Issues Found


Castle.DynamicProxy.dll

No Issues Found


Castle.Facilities.ActiveRecordIntegration.dll

No Issues Found


Castle.Facilities.AspectSharp.dll

No Issues Found


Castle.MonoRail.TestSupport.dll

No Issues Found


Castle.Facilities.BatchRegistration.dll

No Issues Found


Castle.Facilities.Cache.dll

No Issues Found


Castle.Facilities.DynamicLoader.dll

Methods missing from Mono

Calling Method Method not yet in Mono
Class Castle.Facilities.DynamicLoader.DynamicLoaderFacility:
AppDomain CreateAppDomain(IConfiguration) void AppDomainSetup.set_DisallowApplicationBaseProbing(bool)


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.Facilities.DynamicLoader.DynamicLoaderFacility:
AppDomain CreateAppDomain(IConfiguration) AppDomain AppDomain.CreateDomain(string, Evidence, AppDomainSetup) Currently it does not allow the setup in the other domain


Castle.Facilities.IBatisNetIntegration.dll

No Issues Found


Castle.Facilities.Logging.dll

No Issues Found


Castle.Facilities.NHibernateIntegration.dll

No Issues Found


Castle.Facilities.Prevalence.dll

No Issues Found


Castle.MicroKernel.dll

Methods missing from Mono

Calling Method Method not yet in Mono
Class Castle.Facilities.Remoting.RemotingFacility:
void SetUpRemotingConfiguration() void RemotingConfiguration.Configure(string, bool)


Castle.MonoRail.ActiveRecordScaffold.dll

No Issues Found


Castle.MonoRail.ActiveRecordSupport.dll

No Issues Found


Castle.MonoRail.Framework.dll

Methods missing from Mono

Calling Method Method not yet in Mono
Class Castle.MonoRail.Framework.Views.Aspx.WebFormsViewEngine/ExecutePageProvider:
Page ExecutePage(IRailsEngineContext) void HttpServerUtility.Execute(string, bool)


Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Castle.MonoRail.Framework.CacheAttribute:
void Castle.MonoRail.Framework.ICachePolicyConfigurer.Configure(HttpCachePolicy) void HttpCachePolicy.SetValidUntilExpires(bool)


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.MonoRail.Framework.CacheAttribute:
void Castle.MonoRail.Framework.ICachePolicyConfigurer.Configure(HttpCachePolicy) void HttpCachePolicy.SetValidUntilExpires(bool) Not Specified


Castle.MonoRail.Framework.Views.CompositeView.dll

No Issues Found


Castle.MonoRail.Framework.Views.NVelocity.dll

No Issues Found


Castle.MonoRail.Generator.exe

Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Castle.MonoRail.Generator.Generators.ControllerGenerator:
void GenerateController(CodeDomProvider, string, string, string, string, String[], TextWriter) void CodeDomProvider.GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)
void GenerateTestCase(CodeDomProvider, string, string, string, string, String[], TextWriter) void CodeDomProvider.GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)


Castle.Windsor.dll

No Issues Found


AspectSharp.dll

No Issues Found


AspectSharp.Lang.dll

P/Invokes into native code

Calling Method P/Invoke Method External DLL
Class AspectSharp.Lang.GacHelper:
IAssemblyEnum CreateGACEnum() void CreateAssemblyEnum(IAssemblyEnum&, IntPtr, IAssemblyName, ASM_CACHE_FLAGS, IntPtr) fusion.dll


Castle.ActiveRecord.dll

No Issues Found


Castle.Components.Binder.dll

No Issues Found


Castle.Components.Common.EmailSender.dll

Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.Components.Common.EmailSender.Smtp.SmtpSender:
void set_Timeout(int) void SmtpClient.set_Timeout(int) Check to make sure an email is not being sent.
void Send(Message) void SmtpClient.SendAsync(MailMessage, Object) Not Specified
void Send(Message) void SmtpClient.Send(MailMessage) Need to work on message attachments.
MailMessage CreateMailMessage(Message) void Attachment..ctor(Stream, string) Not Specified
MailMessage CreateMailMessage(Message) void Attachment..ctor(string, string) Not Specified
void ConfigureSender(Message) void SmtpClient.set_Port(int) Check to make sure an email is not being sent.


Castle.Components.Common.TemplateEngine.dll

No Issues Found


Castle.Components.Common.TemplateEngine.NVelocityTemplateEngine.dll

No Issues Found


Castle.Components.Winforms.AssemblyResolver.dll

No Issues Found


Castle.Core.dll

Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.Core.Logging.DiagnosticsLogger:
void .ctor(string, string, string) bool EventLog.SourceExists(string, string) Support remote machines
void .ctor(string, string, string) void EventLog.CreateEventSource(EventSourceCreationData) Support remote machine


Castle.DynamicProxy2.dll

No Issues Found


Castle.DynamicProxy.dll

No Issues Found


Castle.Facilities.ActiveRecordIntegration.dll

No Issues Found


Castle.Facilities.AspectSharp.dll

No Issues Found


Castle.Facilities.AutomaticTransactionManagement.dll

No Issues Found


Castle.Facilities.BatchRegistration.dll

No Issues Found


Castle.Facilities.Cache.dll

No Issues Found


Castle.Facilities.DynamicLoader.dll

Methods missing from Mono

Calling Method Method not yet in Mono
Class Castle.Facilities.DynamicLoader.DynamicLoaderFacility:
AppDomain CreateAppDomain(IConfiguration) void AppDomainSetup.set_DisallowApplicationBaseProbing(bool)


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.Facilities.DynamicLoader.DynamicLoaderFacility:
AppDomain CreateAppDomain(IConfiguration) AppDomain AppDomain.CreateDomain(string, Evidence, AppDomainSetup) Currently it does not allow the setup in the other domain


Castle.Facilities.IBatisNetIntegration.dll

No Issues Found


Castle.Facilities.Logging.dll

No Issues Found


Castle.Facilities.NHibernateIntegration.dll

No Issues Found


Castle.Facilities.Prevalence.dll

No Issues Found


Castle.MicroKernel.dll

Methods missing from Mono

Calling Method Method not yet in Mono
Class Castle.Facilities.Remoting.RemotingFacility:
void SetUpRemotingConfiguration() void RemotingConfiguration.Configure(string, bool)


Castle.MonoRail.ActiveRecordScaffold.dll

No Issues Found


Castle.MonoRail.ActiveRecordSupport.dll

No Issues Found


Castle.MonoRail.Framework.dll

Methods missing from Mono

Calling Method Method not yet in Mono
Class Castle.MonoRail.Framework.Views.Aspx.WebFormsViewEngine/ExecutePageProvider:
Page ExecutePage(IRailsEngineContext) void HttpServerUtility.Execute(string, bool)


Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Castle.MonoRail.Framework.CacheAttribute:
void Castle.MonoRail.Framework.ICachePolicyConfigurer.Configure(HttpCachePolicy) void HttpCachePolicy.SetValidUntilExpires(bool)


Methods called marked with [MonoTodo]

Calling Method Method with [MonoTodo] Reason
Class Castle.MonoRail.Framework.CacheAttribute:
void Castle.MonoRail.Framework.ICachePolicyConfigurer.Configure(HttpCachePolicy) void HttpCachePolicy.SetValidUntilExpires(bool) Not Specified


Castle.MonoRail.Framework.Views.CompositeView.dll

No Issues Found


Castle.MonoRail.Framework.Views.NVelocity.dll

No Issues Found


Castle.MonoRail.Generator.exe

Methods called that throw NotImplementedException

Calling Method Mono method that throws NotImplementedException
Class Castle.MonoRail.Generator.Generators.ControllerGenerator:
void GenerateController(CodeDomProvider, string, string, string, string, String[], TextWriter) void CodeDomProvider.GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)
void GenerateTestCase(CodeDomProvider, string, string, string, string, String[], TextWriter) void CodeDomProvider.GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)


Castle.MonoRail.TestSupport.dll

No Issues Found


Castle.MonoRail.Views.Brail.dll

No Issues Found


Castle.MonoRail.WindsorExtension.dll

No Issues Found


Castle.Services.Logging.Log4netIntegration.dll

No Issues Found


Castle.Services.Logging.NLogIntegration.dll

No Issues Found


Castle.Services.Transaction.dll

No Issues Found






本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/74923,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
存储 Shell Linux
快速上手基于 BaGet 的脚本自动化构建 .net 应用打包
本文介绍了如何使用脚本自动化构建 `.net` 应用的 `nuget` 包并推送到指定服务仓库。首先概述了 `BaGet`——一个开源、轻量级且高性能的 `NuGet` 服务器,支持多种存储后端及配置选项。接着详细描述了 `BaGet` 的安装、配置及使用方法,并提供了 `PowerShell` 和 `Bash` 脚本实例,用于自动化推送 `.nupkg` 文件。最后总结了 `BaGet` 的优势及其在实际部署中的便捷性。
61 10
|
24天前
|
数据采集 JSON API
.NET 3.5 中 HttpWebRequest 的核心用法及应用
【9月更文挑战第7天】在.NET 3.5环境下,HttpWebRequest 类是处理HTTP请求的一个核心组件,它封装了HTTP协议的细节,使得开发者可以方便地发送HTTP请求并接收响应。本文将详细介绍HttpWebRequest的核心用法及其实战应用。
58 6
|
2天前
|
SQL JSON BI
最好的 C# .NET 报告工具
最好的 C# .NET 报告工具
6 0
|
2月前
|
开发框架 缓存 前端开发
实战.NET Framework 迁移到 .NET 5/6
从.NET Framework 迁移到.NET 5/6 是一次重要的技术革新,涵盖开发环境与应用架构的全面升级。本文通过具体案例详细解析迁移流程,包括评估现有应用、利用.NET Portability Analyzer 工具识别可移植代码、创建新项目、逐步迁移代码及处理依赖项更新等关键步骤。特别关注命名空间调整、JSON 序列化工具更换及数据库访问层重构等内容,旨在帮助开发者掌握最佳实践,确保迁移过程平稳高效,同时提升应用性能与可维护性。
72 2
|
2月前
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
73 3
|
2月前
|
缓存 Java API
【揭秘】.NET高手不愿透露的秘密:如何让应用瞬间提速?
【8月更文挑战第28天】本文通过对比的方式,介绍了针对 .NET 应用性能瓶颈的优化方法。以一个存在响应延迟和并发处理不足的 Web API 项目为例,从性能分析入手,探讨了使用结构体减少内存分配、异步编程提高吞吐量、EF Core 惰性加载减少数据库访问以及垃圾回收机制优化等多个方面,帮助开发者全面提升 .NET 应用的性能和稳定性。通过具体示例,展示了如何在不同场景下选择最佳实践,以实现更高效的应用体验。
34 3
|
2月前
|
前端开发 JavaScript 开发工具
跨域联姻:React.NET——.NET应用与React的完美融合,解锁前后端高效协作新姿势。
【8月更文挑战第28天】探索React.NET,这是将热门前端框架React与强大的.NET后端无缝集成的创新方案。React以其组件化和虚拟DOM技术著称,能构建高性能、可维护的用户界面;.NET则擅长企业级应用开发。React.NET作为桥梁,使.NET应用轻松采用React构建前端,并优化开发流程与性能。通过直接托管React组件,.NET应用简化了部署流程,同时支持服务器端渲染(SSR),提升首屏加载速度与SEO优化。
31 1
|
2月前
|
存储 缓存 安全
.NET 在金融行业的应用:高并发交易系统的构建与优化之路
【8月更文挑战第28天】在金融行业,交易系统需具备高并发处理、低延迟及高稳定性和安全性。利用.NET构建此类系统时,可采用异步编程提升并发能力,优化数据库访问以降低延迟,使用缓存减少数据库访问频率,借助分布式事务确保数据一致性,并加强安全性措施。通过综合优化,满足金融行业的严苛要求。
40 1
|
2月前
|
开发框架 JSON 监控
实战指南:从 .NET Framework 迁移到 .NET 5/6 的策略与最佳实践
【8月更文挑战第28天】从 .NET Framework 迁移到 .NET 5/6 是一次重要的技术升级,涉及开发环境与应用架构的改进。本文通过具体案例分析,介绍迁移策略与最佳实践,帮助开发者顺利完成转变。
52 1
|
2月前
|
大数据 开发工具 开发者
从零到英雄:.NET核心技术带你踏上编程之旅,构建首个应用,开启你的数字世界探险!
【8月更文挑战第28天】本文带领读者从零开始,使用强大的.NET平台搭建首个控制台应用。无论你是新手还是希望扩展技能的开发者,都能通过本文逐步掌握.NET的核心技术。从环境搭建到创建项目,再到编写和运行代码,详细步骤助你轻松上手。通过计算两数之和的小项目,你不仅能快速入门,还能为未来开发更复杂的应用奠定基础。希望本文为你的.NET学习之旅开启新篇章!
30 1